【问题标题】:Oracle Trigger - Updating multiple rows on tableOracle 触发器 - 更新表上的多行
【发布时间】:2011-11-01 04:58:53
【问题描述】:

如果我有一个在更新 TableA 时执行的触发器,如果​​我在一个更新语句中更新 TableA 上的 100 条记录,是否会出现问题?我怀疑触发器将为每条记录运行 100 次。这是正确的还是只会运行一次?有人警告我,在一个更新语句中更新多条记录可能会导致问题。

【问题讨论】:

    标签: oracle triggers


    【解决方案1】:

    如果触发器被定义为FOR EACH ROW,那么它将为每一行更新触发一次,即总共100次。如果不是FOR EACH ROW,它只会触发一次。

    【讨论】:

      【解决方案2】:

      触发器将针对每条记录运行,但不一定会导致任何问题。当然,这取决于您的触发器的作用。

      在某些情况下,您可能会使用多个触发器

      1. 用于初始化集合的 BEFORE UPDATE 触发器
      2. BEFORE UPDATE FOR EACH ROW 触发器用受影响记录的 ID 填充集合
      3. AFTER UPDATE 触发器用于处理收集的 ID

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 1970-01-01
        • 1970-01-01
        • 2016-12-03
        • 2011-10-25
        • 2017-06-26
        • 1970-01-01
        相关资源
        最近更新 更多