我有一个命令在修改表后在oracle触发器内执行。 我需要这个命令运行一次(即使有100行更新),并且只有当行更新时才会运行。
FOR EACH ROW
允许确保仅在更新行时发送命令,那么如何在第一次循环后停止执行?
答案 0 :(得分:1)
看起来你将使用compound trigger
。在for each row
部分,您需要收集rowid
来更新并在after statement
运行整个更新
答案 1 :(得分:0)
使用全局包变量。
1)在更新语句触发器之前将其重置为null。
2)为每个行触发器保存值/ inc计数器
3)在更新语句触发器后进行最终检查,并且无论受影响的行数是多少,都会激活您的逻辑