自定义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;
原文地址:https://www.cnblogs.com/geaozhang/p/6809470.html
相关推荐
-
kubernetes 使用NFS搭建动态存储卷(PV/SorageClass/PVC) 服务器
2020-6-16
-
时序性数据库Prometheus 服务器
2019-4-4
-
PsySH——PHP交互式控制台 服务器
2019-3-22
-
如何在 Debian/Ubuntu 上手动安装安全更新? 服务器
2019-8-17
-
hbase查询解析 服务器
2020-6-13
-
跟我学 “Linux” 小程序 Web 版开发(三):云开发相关数据调用 服务器
2020-5-25
-
Linux查看网络流量 服务器
2020-6-10
-
NoSQL介绍 服务器
2020-5-31
-
一次非常有意思的SQL优化经历:从30248.271s到0.001s 服务器
2019-5-11
-
在一个u盘上安装多个live linux发行版 服务器
2019-8-29