mysql 存储过程

创建存储过程

删除已经存在的存储过程

drop procedure if exists procedure_name;

设置分割符

DELIMITER //
create procedure procedure_name(IN id INT)
begin
-- start transaction

-- 执行的 SQL

-- commit;
-- rollback

end //
DELIMITER ; -- 这里有空格

首先改变默认的分隔符为 // 来作为存储过程结束的标识,随后再恢复默认值。

参数限制

in: 给参数传入值,定义的参数就得到了值
out: 模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程(在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值)
inout: 调用者还可以通过 inout 参数传递值给存储过程,也可以从存储过程内部传值给调用者

参数类型

MySQL 所有数据类型
int
tinyint
float
decimal
varchar
...

FIND_IN_SET(str,strlist) 如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N
SELECT FIND_IN_SET('1','1,2,3,4,5');

你可能感兴趣的:(mysql 存储过程)