mysql捕捉异常

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,NOT FOUND,SQLWARNING SET flag=500;

1、遇到异常时有continue(继续执行)和exit(退出)两种;

2、捕捉的异常

(1)捕捉单个异常如'23000'duplicate重复主键异常;

(2)某一类异常SQLWARNING以01开头的异常代码;NOT FOUND:以02开头的异常代    码;SQLEXCEPTION没有被SQLWARNINGNOT FOUND捕获的异常(sqlstate)

(3)多种异常,三个一起写

3、如果为continue,捕获到这个异常后,会执行set flag=500这个存储过程,这时可以通过判断flag的值来判断是否发 生了异常,若发生则rollback.若为事务(transaction),则rollback事务中所执行的操作,若不是事务,则rollback 最近的一条。

4、例子:

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,NOT FOUND,SQLWARNING SET flag=500;
START TRANSACTION;
执行的操作
IF flag=500 THEN ROLLBACK;
ELSE SET flag=200; COMMIT; //提交
END IF;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值