Mysql 异常处理

在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;

你可能感兴趣的:(Mysql)