有人可以解释一下是什么意思:
:new和:old in trigger code.
解决方法
:new和:old是伪记录,允许您访问特定列的新旧值.如果我有一张桌子
CREATE TABLE foo ( foo_id NUMBER PRIMARY KEY,bar VARCHAR2(10),baz VARCHAR2(10) );
我插入一行
INSERT INTO foo( foo_id,bar,baz ) VALUES( 1,'Bar 1','Baz 1' );
然后在插入触发器之前的行级别
:new.foo_id will be 1 :new.bar will be 'Bar 1' :new.baz will be 'Baz 1'
而
:old.foo_id will be NULL :old.bar will be NULL :old.baz will be NULL
如果您然后更新该行
UPDATE foo SET baz = 'Baz 2' WHERE foo_id = 1
然后在更新前的行级触发器中
:new.foo_id will be 1 :new.bar will be 'Bar 1' :new.baz will be 'Baz 2'
而
:old.foo_id will be 1 :old.bar will be 'Bar 1' :old.baz will be 'Baz 1'
如果我然后删除该行
DELETE FROM foo WHERE foo_id = 1
然后在删除行级触发器之前,
:new.foo_id will be NULL :new.bar will be NULL :new.baz will be NULL
而
:old.foo_id will be 1 :old.bar will be 'Bar 1' :old.baz will be 'Baz 2'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。