代码音符

Mysql自定义函数

创建时间: 2019-8-9 18:47

修改时间: 2023-6-26 18:06

浏览: 125

用户自定义函数是一种对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;

创建时间: 2019-8-9 18:47

修改时间: 2023-6-26 18:06

浏览: 125

*本文遵循 CC BY-NC-SA 许可协议。转载请注明出处!