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(10);