mysql函数
对比和存储过程的区别:
- 存储过程可以有多个返回值,或者没有返回值,适合做批量插入或更新
- 函数有且仅有一个返回值,适合做处理数据后返回一个结果
语法
创建
CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型 BEGIN 函数体 END
因为必须要有返回值,所以肯定要return,但是return语句没有放最后也不会报错
调用
SELECT 函数名(参数)
使用
CREATE FUNCTION fun1() RETURNS INT BEGIN DECLARE res INT DEFAULT 0; SELECT COUNT(*) INTO res FROM `user`; RETURN res; END $ SELECT fun1()$
注意如果没有设置$
记得要设置起来。
CREATE FUNCTION fun3(name VARCHAR(20)) RETURNS VARCHAR(20) BEGIN DECLARE res VARCHAR(20) DEFAULT ''; SELECT email INTO res FROM `user` WHERE `user`.`name` =name; RETURN res; END $ SELECT fun3('curry')$
查看函数,类似存储过程
SHOW CREATE FUNCTION fun1$
删除函数,也类似存储过程
DROP FUNCTION fun2$