MySQL 自定义函数
定义自定义函数
delimiter $$
CREATE FUNCTION f1(
i1 int, # 输入两个 int 类型的值
i2 int
)
RETURNS int # 函数返回一个 int 类型的值
BEGIN
declare num int; # 定义一个 int 类型的 num
set num = i1 + i2; # 设置 num 的值
RETURN (num); # 返回 num 的值
END $$
delimiter ;
调用 f1 函数
SELECT f1(1, 2);
查询 tmp 表中的数据
在查询中调用 f1 函数
SELECT f1(10, id), name from tmp;
运行结果:
函数与存储过程的区别
存储过程:
- 里面包含 SQL 语句
- intout, out 构造返回值
- 调用方式:select 函数名(参数)
函数:
- 里面不能包含 SQL 语句
- return 返回值
- 调用方式:call 存储过程名(参数)