如果rollback
没有SQLEXCEPTION
命令,MySQL存储过程将抛出错误,但它在异常之前更改了一些数据。
我为SQL异常添加了rollback命令:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
END;
但我现在不知道回滚的原因
我知道我们可以定义每个SQL异常及其处理程序,但它太复杂了,我只是想知道为什么会发生回滚。
有没有一种简单的方法来获取MySQL存储过程中回滚的原因?
答案 0 :(得分:0)
谢谢@kordirko。我有一个RESIGNAL解决方案。但它只在MySQL 5.5之前得到支持。
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SET @flag = 1;
IF @flag = 1 THEN RESIGNAL;END IF;
ROLLBACK;
END;