Triggers:代替/For Insert,哪个会先触发?

Posted

技术标签:

【中文标题】Triggers:代替/For Insert,哪个会先触发?【英文标题】:Triggers: Instead of / For Insert, which will trigger first? 【发布时间】:2014-05-09 14:18:43 【问题描述】:

我正在尝试了解存储过程和触发器的文档,它在其中插入和更新带有触发器的表。

他们给了我 2 个触发器文档,这个特定的表有两个触发器:

trig_table_ii 和 trig_table_ti。

trig_table_ii:代替插入 trig_table_ti:用于插入

插入/更新表时哪个会先触发?

在 trig_table_ii ( INSTEAD OF INSERT ) 中,这里有一个针对同一个表的 INSERT 语句。这是否意味着 trig_table_ii 先执行?

【问题讨论】:

【参考方案1】:

更新表格时不会触发。 FOR INSERTAFTER INSERT 相同。这将在您完成插入记录后触发。

INSTEAD OF INSERT 将作为插入的替换而触发。此触发器将忽略您原来的插入语句并执行任何要执行的内容。

让我们在你的INSTEAD OF 中说,出于某种原因,不要插入记录。所以,FOR INSERT 触发器不会被触发。

点击此处了解更多信息:CREATE TRIGGER

【讨论】:

嗨,我认为不是 insert 会首先触发,只是因为最后有一个 FINAL Insert 可以触发 FOR INSERT。它是否正确?感谢您的参考,虽然我已经阅读了,但只是想问这个问题,哪个高管首先。 Instead of 将首先触发,因为您的字面意思是“现在不要插入。先运行此触发器”。如果此触发器插入一些记录,则调用For insert

以上是关于Triggers:代替/For Insert,哪个会先触发?的主要内容,如果未能解决你的问题,请参考以下文章

前触发器是啥意思?

在 OpenShift 上安装 Tekton Triggers EventListener (for GitLab) 会导致:错误配置映射被禁止:无法在 API 中获取资源配置映射

Quartz 第二课 Jobs and Triggers(官方文档翻译)

merge into 语句代替Insert/Update

Merge Into 语句代替Insert/Update在Oracle中的应用实战

mysql : 使用任何命令代替 mysql_insert_id();在 PHP 中?