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;


9

文章分类:Mysql

所属标签: 自定义函数 function mysql sql


评论:

啊~评论区就像肚皮一样空荡荡的。。。快来留下点啥充充饥