在Java中异常处理的方法, try --- catch -- finally。那么在Mysql里面是如何来处理的呢?
步骤如下:
1)关联异常信息变量;
2)开启事务;
3)关联变量判断。
Mysql里面其实也提供了一些异常捕获的情况,常见的有以下几种:
1) SQLEXCEPTION;
2) NOT FOUNT;
3) WARNING。
语法格式
上面的语法就是将有异常的信息进行设置关联到变量上,如果出现了异常,那么_ERROR的值会被置成1,后面可以根据其值进行相应的操作,是commit还是rollback。
下面是一个例子供参考。
步骤如下:
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;