如果 BEFORE 触发器产生错误,UPDATE 是不是仍然执行?
Posted
技术标签:
【中文标题】如果 BEFORE 触发器产生错误,UPDATE 是不是仍然执行?【英文标题】:Is an UPDATE still executed if a BEFORE trigger creates an error?如果 BEFORE 触发器产生错误,UPDATE 是否仍然执行? 【发布时间】:2010-11-17 23:21:02 【问题描述】:如果没有,有什么方法可以取消触发器之外的 UPDATE 吗?
【问题讨论】:
【参考方案1】:EDIT:如果 BEFORE 触发器失败,则 UPDATE 被取消。
我之前的愚蠢回答是指 AFTER 触发器。以防万一有人仍然需要它: 在 AFTER 触发器的情况下,如果触发器失败,则不会取消 UPDATE。对于“取消”更新,必须使用事务,然后在出错的情况下回滚事务,或者在成功的情况下提交事务。 有关 mysql 中事务的更多信息,请访问:http://dev.mysql.com/doc/refman/5.0/en/commit.html
【讨论】:
真的吗,BEFORE 触发器是在更新之后触发的? 哇,对不起。出于某种原因,我认为您的意思是更新发生在触发器之前,所以我的大脑处理它就好像它是触发器之后一样。我的错。如果 BEFORE 触发器失败,则 UPDATE 被取消。以上是关于如果 BEFORE 触发器产生错误,UPDATE 是不是仍然执行?的主要内容,如果未能解决你的问题,请参考以下文章