gpt4 book ai didi

oracle - 如何防止在没有插入行时触发插入触发器?

转载 作者:行者123 更新时间:2023-12-01 10:13:43 25 4
gpt4 key购买 nike

我有一个 TABLE1。在这张表上我创建了一个触发器:插入或更新或删除之后

现在,如果我执行不插入任何内容的插入操作,触发器仍将被触发:

insert into TABLE1 select * from TABLE1 where 1=0;

此查询将插入 NO ROWS 但触发器仍被触发。

有没有办法避免这种情况?这是正常行为吗?

最佳答案

是的,这是正常行为。这是可以避免的,尽管这样做需要 3 个触发器:

  1. 将包 bool 变量设置为 FALSE 的 BEFORE 触发器
  2. 插入行时将变量设置为 TRUE 的 FOR EACH ROW 触发器
  3. 您拥有的 AFTER 触发器,您现在可以在其中检查变量的值,然后再执行其操作。

听起来有点矫枉过正?也许是:您的触发器要尝试实现什么?

关于oracle - 如何防止在没有插入行时触发插入触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3118223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com