如果我们创建befor update trigger on a table,然后对此表作update 的时候,这个trigger有可能触发两次(update 语句被重新执行了)。thomas 在他的书 expert oracle 中说只要在trigger中引用了 :new.x 和 :old.x,并且x 的 consistent read and current read 值不一样, 上述情况就会发生。其实如果只引用:new.x,trigger只触发一次。如果只引用:old.x trigger 也会触发两次。所以说上述情况中,oracle 是根据trigger 中是否引用 :old.x 来决定是否要重新执行触发trigger 的update 语句.
哈哈,第一篇文章占点大师的光