与问题一样 -:new
当更新完全省略触发器中引用的列时,将采用什么值?
我正在尝试调试一个存储过程,该过程在更新时触发一个触发器,该触发器使用一个函数接受:new
带DATE
值的字段。但是,我正在运行的更新不会更新引用的列。
触发器会使用存储在运行更新的表中的值吗?或者它会从其他地方拿走它吗?
如果更新语句中省略了该列,则该:NEW.column
值与该值相同:OLD.column
。那就是在更新语句运行之前存储在表中的值
文档对此并不完全清楚,但:NEW
并:OLD
指出了当前行的版本。
因此,:NEW.col23
表示新版本行中该列的值。如果事务没有更改该列的值,那么它将与 :OLD.col23
. 实际上,我们可以使用它在触发器中编写测试代码,以查看更新是否更改了列中的值:
if :NEW.col23 = :OLD.col23 then
-- value not changed