一.单输入型
案例1:增加员工工资
create procedure addsal(in employno1 int,in employno2 int)
BEGIN
start TRANSACTION;-- 手动开启事务,不选择函数的原因在于函数不支持事务
update employ set sal = sal+500 where employno = employno1;
update employ set sal = sal+500 where employno = employno2;
commit;
END
call addsal(2,5)
注解:
1、函数不支持事物,但存储过程可以
2、这里形参列表中的in表示需要在外部输入的数据,out表示存储过程返回的数据,后面跟上其各自的类型,这里out可以有多个,即存储过程可以有多个返回值
二. 有输入有输出型
案例2:使用存储过程,实现字符串的拼接
create procedure pinjie(in a varchar(5),in b varchar(5),out str varchar(15))
BEGIN
set str = concat(a,'--',b);
END
set @str := '';
call pinjie('hello','world',@str);
select @str;