Mysql存储过程使用

案例:

create procedure sp_insert_graduate_certificate ( in psid varchar(200),
						in certificateid int(32),
						in number varchar(50),
						in userid int(32),
						in starttime datetime,
						in graduatetime datetime,
						in certificatename varchar(50),
						in endtime datetime,
						in goodsid int(32) ,
						out result_cid int(32))
begin
	start transaction;
		set @scount=(select count(1) from study_manage_graduate_certificate where p_sid=psid);
		if @scount<=0 then
			INSERT INTO study_manage_graduate_certificate(p_sid,certificateid,number,userid,starttime,graduatetime,certificatename,endtime,goodsid) 
			values(psid,certificateid,number,userid,starttime,graduatetime,certificatename,endtime,goodsid);
		end if;
	select cid as result_cid from study_manage_graduate_certificate where p_sid=psid;
	commit;
end;

注意事项:

1、参数的三种类型

      in 只输入,不输出

      out 只输出,不输入

      inout  输出并且输入

2、mysql的存储过程不是原子性的(orcale的是)

      保证mysql存储过程的原子性,需要开启事务,利用事务的原子性,变相的是存储过程中的事务(start transaction;                     commit;)所包含的所有命令具有原子性

3、通过call获取返回值

      call sp_insert_graduate_certificate('9940',1,'2',3,now(),now(),'4',now(),10483,@result_cid);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值