Mysql自定义函数


用户自定义函数是一种对Mysql扩展的途径,其用法与内置函数相同。




创建自定义函数



CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
routine_body



示例1(无参):

创建一个名称为get_time的自定义函数,返回当前被自定义格式格式化的时间。

CREATE FUNCTION get_time()
RETURNS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点:%i分:%s秒');


调用自定义函数。

SELECT get_time();



示例2(有参):

创建一个名称为my_avg的自定义函数,需要传入两个数字参数,返回两个数字的平均值。

CREATE FUNCTION my_avg(num1 SMALLINT UNSIGNED, num2 SMALLINT UNSIGNED)
RETURNS FLOAT(10, 2) UNSIGNED
RETURN (num1 + num2) / 2;


示例3(复合结构):

注:由于函数语句的结束与SQL语句的结束都为“;”分号,会产生冲突,所以我们可以通过以下方式修改SQL语句的结束符

DELIMITER $$

这样SQL语句的结束符就被修改成“$$”啦,然后开始我们自定义函数的创建。

CREATE FUNCTION add_user(name VARCHAR(20))
RETURNS INT UNSIGNED
BEGIN
INSERT users(name) VALUES(name);
RETURN LAST_INSERT_ID();
END $$

该函数的功能为向users表添加一条数据,并返回这条数据的自增id。


调用该函数:

SELECT add_user('createdpro');




删除自定义函数:



DROP FUNCTION [IF EXISTS] function_name;


作者:筱剑Beta

2019-12-20 17:09:26.0编辑

2019-08-09 18:47:26.0创作

所属分类:Mysql

mysql
sql
发布

街角有人祝福,巷口有人哭,这里却没人评论ε=(´ο`*)))