区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数:有且仅有1 个返回,合适做处理数据后返回一个结果 做查询一个值
mysql存储过程procedure
名为myprocedure的存储过程:用来删除指定id的数据
create procedure myprocedure (in del_id integer)
begin
delete from matches WHERE id = del_id ;
end
调用存储过程
call myprocedure(5);
查询所有存储过程
show procedure status;
查询某个存储过程及内容
show create procedure myprocedure;
删除某个存储过程
DROP procedure myprocedure;
mysql函数FUNCTION
名为myfunction的函数:用来查询数据总量
CREATE FUNCTION myfunction() RETURNS INT
BEGIN
DECLARE c INT DEFAULT 0;#定义局部变量
SELECT
COUNT( * ) INTO c #赋值与c
FROM
matches;
RETURN c;
END
调用函数
注意:调用函数可能报如下错误
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
解决方法:
set global log_bin_trust_function_creators=TRUE;
select myfunction();
查询所有函数
show function status;
查询某个函数及内容
show create function myfunction;
删除某个函数
DROP function myfunction;