mysql存储过程

存储过程的好处:

  1. 存储过程因为sql语句已经预编译过了,因此效率会比较快一点。
  2. 存储过程可以接受参数,返回参数,返回多个或返回结果集。
  3. 在单个存储过程可执行一系列sql语句。
  4. 存储过程里可以调用存储过程,以此来满足复杂的业务需求。

存储过程的创建:

语法:

Greade procedure  存储过程名(过程参数1,参数2)

begin

//内容 

end;

过程的调用:

call  过程名(参数1,参数2);

存储过程的删除:

drop procedure 存储过程名;

不能在存储过程中删除另一个存储过程,只能调用。

信息查看:

1.显示存储过程信息

show greate procedure  存储过程名;

2.显示数据库中所有的存储过程的信息,包括数据库,存储过程名,创建时间。

show procedure status;

完整的存储过程案例:

#完成取款或存款业务
#张三的卡号取款900元,李四的卡号存款5000元
drop PROCEDURE if exists ps_tradeinfo;
create PROCEDURE ps_tradeinfo(cardid1 varchar(50),money int,transtype1 varchar(50) ,err varchar(50))
b:BEGIN
DECLARE balance1 int ;
if transtype1='取款' THEN
SELECT balance into balance1  from cardinfo where cardid=cardid1;
if balance1<money+1 THEN
SELECT @err:='卡中余额不足';
LEAVE b;
ELSE
insert into tradeinfo(cardid,transtype,transmoney)VALUES(cardid1,'取款',money);
update cardinfo set balance=balance-money where cardid=cardid1;
end if ;
ELSEif transtype1='存入' THEN
insert into tradeinfo(cardid,transtype,transmoney)VALUES(cardid1,'存入',money);
UPDATE cardinfo set balance=balance+money where cardid=cardid1;
end if;
end;

set @err='';
call ps_tradeinfo('1010 3576 1212 4444','200','存入',@err);

SELECT * from tradeinfo;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值