sql – 新旧触发器代码

前端之家收集整理的这篇文章主要介绍了sql – 新旧触发器代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以解释一下是什么意思:

: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'

猜你在找的MsSQL相关文章