【问题标题】:Is an UPDATE still executed if a BEFORE trigger creates an error?如果 BEFORE 触发器产生错误,UPDATE 是否仍然执行?
【发布时间】:2010-11-17 23:21:02
【问题描述】:

如果没有,有什么方法可以取消触发器之外的 UPDATE 吗?

【问题讨论】:

    标签: mysql triggers mysql5


    【解决方案1】:

    EDIT:如果 BEFORE 触发器失败,则 UPDATE 被取消。

    我之前的愚蠢回答是指 AFTER 触发器。以防万一有人仍然需要它: 在 AFTER 触发器的情况下,如果触发器失败,则不会取消 UPDATE。对于“取消”更新,必须使用事务,然后在出错的情况下回滚事务,或者在成功的情况下提交事务。 有关 MySQL 中事务的更多信息,请访问:http://dev.mysql.com/doc/refman/5.0/en/commit.html

    【讨论】:

    • 真的吗,BEFORE 触发器是在更新之后触发的?
    • 哇,对不起。出于某种原因,我认为您的意思是更新发生在触发器之前,所以我的大脑处理它就好像它是触发器之后一样。我的错。如果 BEFORE 触发器失败,则 UPDATE 被取消。
    猜你喜欢
    • 2013-01-24
    • 2021-11-25
    • 1970-01-01
    • 2021-11-03
    • 2011-01-21
    • 1970-01-01
    • 2018-05-16
    • 2013-01-07
    • 2011-02-08
    相关资源
    最近更新 更多