繁体   English   中英

MySQL存储过程回滚的原因

[英]MySQL stored procedure the reason of rollback

如果没有SQLEXCEPTION rollback命令,则MySQL存储过程将抛出该错误,但在异常发生前它已更改了一些数据。
我为SQL异常添加了rollback命令:

DECLARE EXIT HANDLER FOR SQLEXCEPTION 
BEGIN
    ROLLBACK; 
END;

但是我现在不知道回滚的原因。
我知道我们可以定义每个SQL异常及其处理程序,但是它太复杂了,我只想知道为什么发生回滚。
是否有一种简单的方法来获取MySQL存储过程中回滚的原因?

谢谢@kordirko。 我有一个解决方案与RESIGNAL。 但仅在MySQL 5.5之前受支持。

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
  SET @flag = 1;
  IF @flag = 1 THEN RESIGNAL;END IF;
  ROLLBACK;
END;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM