纵有疾风起
人生不言弃

自定义MySQL函数

1、MySQL创建函数语法:

CREATE  [DEFINER = { user | CURRENT_USER }]FUNCTION sp_name ([func_parameter[,...]])RETURNS type[characteristic ...] routine_bodyfunc_parameter:    param_name typetype:    Any valid MySQL data typeroutine_body:    Valid SQL routine statement

注意:自定义函数不能跨库使用

mysql> DELIMITER //mysql> CREATE FUNCTION Ver_Compare (n INT, m INT)    -> RETURNS VARCHAR(50)    #声明返回的数据类型        -> BEGIN    ->   DECLARE s VARCHAR(50);    ->   IF n = m THEN SET s = 'equals';    ->   ELSE    ->     IF n > m THEN SET s = 'greater';    ->     ELSE SET s = 'less';    ->     END IF;    ->     SET s = CONCAT('is ', s, ' than');    ->   END IF;    ->   SET s = CONCAT(n, ' ', s, ' ', m, '.');    ->   RETURN s;    #一个实际的返回值
-> END //mysql> DELIMITER ;

由上述例子,不难看出,自定义函数的创建其实和create存储过程还是很相似的。

 

2、函数调用

  自定义函数虽然在创建定义上和存储过程类似,但调用时却有些许的不一样。

mysql> call Ver_Compare(1,2);ERROR 1305 (42000): PROCEDURE db1.Ver_Compare does not existmysql> set @ax = Ver_Compare(1,2);mysql> select @ax;+-------------------+| @ax               |+-------------------+| 1 is less than 2. |+-------------------+

在我们调用函数的时候,函数需要出现在 = 的右边(也就是说调用函数需要有变量接收其结果

 

3、其他

  >查看所有自定义函数:show function status\G;

  >删除指定自定义函数:drop function func_name;

文章转载于:https://www.cnblogs.com/geaozhang/p/6809470.html

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » 自定义MySQL函数
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录