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;

运行结果:


函数与存储过程的区别

存储过程:

  1. 里面包含 SQL 语句
  2. intout, out 构造返回值
  3. 调用方式:select 函数名(参数)

函数:

  1. 里面不能包含 SQL 语句
  2. return 返回值
  3. 调用方式:call 存储过程名(参数)
posted @ 2018-12-18 10:21  klvchen  阅读(452)  评论(0编辑  收藏  举报