sql – 新旧触发器代码
发布时间:2020-12-12 07:44:48 所属栏目:MsSql教程 来源:网络整理
导读:有人可以解释一下是什么意思: :new和:old in trigger code. 解决方法 :new和:old是伪记录,允许您访问特定列的新旧值.如果我有一张桌子 CREATE TABLE foo ( foo_id NUMBER PRIMARY KEY,bar VARCHAR2(10),baz VARCHAR2(10)); 我插入一行 INSERT INTO foo(
有人可以解释一下是什么意思:
: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' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |