mysql之是否可以在 MySQL 触发器中执行 ROLLBACK

mfryf 阅读:216 2025-06-02 22:19:02 评论:0

这就是问题所在:是否可以在 MySQL 触发器中执行 ROLLBACK?

如果答案是肯定的,那么,请解释如何。

请您参考如下方法:

我发现这个功能从 MySQL 5.5 开始就存在,并且在早期版本中不起作用。

触发器不会回滚或提交。
要启动任何回滚,您必须引发异常。因此,您的插入/更新/删除命令将中止。
回滚或提交操作必须围绕您的 SQL 命令进行。

要引发您的异常,请在您的 XXX 触发器(例如)中:

create trigger Trigger_XXX_BeforeInsert before insert on XXX 
for each row begin 
 
    if [Test] 
    then 
 
      SIGNAL sqlstate '45001' set message_text = "No way ! You cannot do this !"; 
 
    end if ; 
 
end ; 


标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号