mysql 存储过程与函数有相似之处但是,却又不尽相同
1、书写存储过程
Sql 代码
DROPPROCEDURE IF EXISTS count_has_same_name_proc;
CREATEPROCEDURE count_has_same_name_proc (xname VARCHAR(50 ) )
BEGIN
SELECTCOUNT(* ) FROM t_user WHEREname = xname;
END;
2、函数书写执行
错误写法
Sql 代码
DROPFUNCTION IF EXISTS count_has_same_name_func;
CREATEFUNCTION count_has_same_name_func ( xname VARCHAR(50 ) )
RETURNSINT
BEGIN
SELECTCOUNT(id ) FROM t_user WHEREname = xname;
END;
正确写法
Sql 代码
DROPFUNCTION IF EXISTS count_has_same_name_func;
CREATEFUNCTION count_has_same_name_func ( xname VARCHAR(50 ) )
RETURNSINT
BEGIN
DECLARE s INT ;
SELECTCOUNT(id ) into s FROM t_user WHEREname = xname;
RETURN s;
END;
注:trigger 和 function 都需要写成 select ...into 这种句式,否者会报 1415 错误。