仅在更新行时触发触发器

时间:2016-11-07 11:04:11

标签: oracle triggers

我有一个命令在修改表后在oracle触发器内执行。 我需要这个命令运行一次(即使有100行更新),并且只有当行更新时才会运行。

FOR EACH ROW允许确保仅在更新行时发送命令,那么如何在第一次循环后停止执行?

2 个答案:

答案 0 :(得分:1)

看起来你将使用compound trigger。在for each row部分,您需要收集rowid来更新并在after statement运行整个更新

答案 1 :(得分:0)

使用全局包变量。

1)在更新语句触发器之前将其重置为null。

2)为每个行触发器保存值/ inc计数器

3)在更新语句触发器后进行最终检查,并且无论受影响的行数是多少,都会激活您的逻辑