MySQL存储函数

存储函数

  1. 介绍

存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。具体语法如下:

1
2
3
4
5
6
CREATE FUNCTION 存储函数名称 ([ 参数列表 ])
RETURNS type [characteristic ...]
BEGIN
-- SQL语句
RETURN ...;
END ;

characteristic说明:

  • DETERMINISTIC:相同的输入参数总是产生相同的结果
  • NO SQL :不包含 SQL 语句。
  • READS SQL DATA:包含读取数据的语句,但不包含写入数据的语句。
  1. 案例

计算从1累加到n的值,n为传入的参数值。

{2}
1
2
3
4
5
6
7
8
9
10
11
12
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(50);

在mysql8.0版本中binlog默认是开启的,一旦开启了,mysql就要求在定义存储过程时,需要指定characteristic特性,否则就会报如下错误:

image

文章作者: GeYu
文章链接: https://nuistgy.github.io/2023/05/16/MySQL-存储函数/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yu's Blog