自定义MySQL函数


1、MySQL创建函数语法:

CREATE   [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body func_parameter: param_name type type: Any valid MySQL data type routine_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 exist mysql> set @ax = Ver_Compare(1,2); mysql> select @ax; +-------------------+
| @ax               |
+-------------------+
| 1 is less than 2. |
+-------------------+

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

 

3、其他

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

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM