mysql捕捉异常

来源:互联网 发布:南京栖霞网络问政 编辑:程序博客网 时间:2024/05/17 08:19

DECLARE CONTINUE HANDLER FORSQLEXCEPTION,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 0
原创粉丝点击