sql – 新旧触发器代码
发布时间:2020-05-24 00:18:12 所属栏目: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( 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' (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLServer2005中的SQLCMD工具使用
- sql – 如何更新表中的n行?
- sql-server – SQL Server服务代理的缺点
- sql-server – SQL Server 2008 R2 – 备份2005 dbs并迁移到
- sql-server-2008 – 如何在Sql Server 2008上终止/终止所有
- sql – 使用存储过程在LEFT OUTER JOIN中返回SETOF记录
- .net – 当实体框架中的数据库模式发生变化时,最佳做法是什
- sql – 对表进行分区以获得真正好处的好大小(行数)是多少?
- Hadoop 2.x伪分布式环境搭建详细步骤
- sql-server – 更新用户取消的查询
