在Java中异常处理的方法, try --- catch -- finally。那么在Mysql里面是如何来处理的呢?
步骤如下:
1)关联异常信息变量;
2)开启事务;
3)关联变量判断。
Mysql里面其实也提供了一些异常捕获的情况,常见的有以下几种:
1) SQLEXCEPTION;
2) NOT FOUNT;
3) WARNING。
语法格式
DECLARE CONTINUE| EXIT HANDLER FOR SQLEXCEPTION|WARING|NOT FOUND SET _ERROR = 0;
上面的语法就是将有异常的信息进行设置关联到变量上,如果出现了异常,那么_ERROR的值会被置成1,后面可以根据其值进行相应的操作,是commit还是rollback。
下面是一个例子供参考。
DROP PROCEDURE IF EXISTS TEST.TEST;CREATE PROCEDURE TEST.TEST(ID INT, NAME VARCHAR(20))BEGIN DECLARE _ERROR INT DEFAULT 0; -- 如果出现异常就关联到另一个变量上 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET _ERROR =1; -- 开启事务 START TRANSACTION; INSERT INTO STUDENT VALUES(ID, NAME); -- 变量判断,是COMMIT还是ROLLBACK IF _ERROR = 1 THEN ROLLBACK; -- 将错误信息写到另一张表中 INSERT INTO ERROR VALUES(ID,NAME); SET _ERROR = 0; COMMIT; ELSE COMMIT; END IF; END;