六、MySQL自定义函数
2019-07-31 本文已影响0人
Lord丶轩莫言弃
1、自定义函数简介
- 用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同
- 自定义函数的两个必要条件:
- 参数:可以有零个或多个
- 返回值:只能有一个返回值
- 函数可以返回任意类型的值,同样可以接收这些类型的参数
- 函数的参数和返回值之间没有必然的内在的联系
- MySQL中规定函数的参数数量不能超过1024个
- 具有复合结构的函数体需要使用BEGIN...END来包含
2、创建自定义函数
CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
routine_body
3、关于函数体(routine_body)
- 函数体由合法的SQL语句构成
- 函数体可以是简单的SELECT或INSERT语句
- 函数体如果为复合结构则使用BEGIN...END语句
- 复合结构可以包含声明,循环,控制结构
4、处理函数无法创建问题
SET GLOBAL log_bin_trust_function_creators = TRUE;
5、创建不带参数的自定义函数
CREATE FUNCTION f1() RETURNS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点:%i分:%s秒');
6、创建带有参数的自定义函数
CREATE FUNCTION f2(num1 SMALLINT UNSIGNED, num2 SMALLINT UNSIGNED) RETURNS FLOAT(10,2) UNSIGNED
RETURN (num1+num2)/2;
7、删除函数
DROP FUNCTION [IF EXISTS] function_name;