详细的描述了MySQL中的存储函数。
存储函数
存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。
语法
CREATE FUNCTION 存储函数名称([参数列表]) RETURNS type [characteristic ...] BEGIN --SQL语句 RETURN ...; END;
characteristic说明: + DETERMINISTIC:相同的输入参数总是产生相同的结果 + NO SQL:不包含SQL语句。 + READS SQL DATA:包含读取数据的语句,但不包含写入数据的语句。
|
样例
-- 存储函数 -- 计算从1到n的累加 create function fun1(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;
select fun1(100);
|
注意当未添加 deterministic 会产生如下bug:
运行结果:
注意
存储函数必须要有返回值,而且参数只能是输入类型的参数,其过程实现完全可以被存储过程所代替。
因此存储函数的使用较少,这里仅做了解。