存储函数和存储过程十分类似,详见:【mysql学习笔记27】存储过程
存储函数有返回值,且参数只能是in类型
语法:
CREATE FUNCTION 函数名([参数列表])
RETURNS type [characteristic...]
BEGIN
--- SQL语句
RETURN ...;
END;
characteristic(特性):
- DETERMINISTIC:相同的输入参数总是产生相同的结果
- NO SQL:不包含SQL语句
- READS SQL DATA:包含查询语句但是不包含写入语句
例子
--- 返回从1到n的累加值
create function sum(n int)
returns int deterministic
begin
declare total int default 0;
while n>0 do
set total:=total+n;
set n:=n-1;
end while;
return total;
end;