首页 > 编程笔记 > MySQL笔记 阅读:6

MySQL CREATE FUNCTION语句的用法(附带实例)

MySQL 中创建存储函数,需要使用 CREATE FUNCTION 语句,基本语法格式如下:
CREATE FUNCTION func_name ( [func_parameter] )
RETURNS type
[characteristic ...] routine_body
各参数解释如下:
【实例】创建存储函数,名称为 NameByZip,该函数返回 SELECT 语句的查询结果,数值类型为字符串型,SQL 语句如下:
CREATE FUNCTION NameByZip ()
RETURNS CHAR(50)
RETURN  (SELECT s_name FROM suppliers WHERE s_call= '48075');
上述语句创建了一个存储函数 NameByZip(),参数定义为空,返回一个 CHAR 类型的结果。代码的执行结果如下:
mysql> set global log_bin_trust_function_creators=TRUE;
mysql> DELIMITER //
mysql> CREATE FUNCTION NameByZip()
-> RETURNS CHAR(50)
-> RETURN   (SELECT s_name FROM suppliers WHERE s_call= '48075');
-> //
mysql> DELIMITER ;
如果存储函数中的 RETURN 语句返回一个类型不同于函数的 RETURNS 子句中的指定类型的值,则返回值将被强制为恰当的类型。例如,如果一个函数返回一个 ENUM 或 SET 值,但是 RETURN 语句返回一个整数,则对于 SET 成员集相应的ENUM成员,MySQL 会将从函数返回的整数值转换为字符串。

指定参数为 IN、OUT 或 INOUT 只对 PROCEDURE 是合法的(FUNCTION 中总是默认为 IN 参数)。RETURNS 子句只能对 FUNCTION 进行指定,对函数而言这是强制的。它用来指定函数的返回类型,而且函数体必须包含一个 RETURN value 语句。

相关文章