其他:DB2 之中是可以创建前置DELETE触发器的。
如下面的例子,在从Person表之中删除一条记录之前,都会将该记录保存到audit_person表中,用做审计。
create table person(id int not null primary key, name char(20))#
create table audit_person(op_time timestamp, op char(3) not null, id int, name char(20))#
--创建触发器
create trigger my_trigger NO CASCADE BEFORE DELETE on person
referencing old as p for each row
mode db2sql
begin
insert into audit_person values(current timestamp, 'DEL', p.id, p.name);
end#
insert into person values(1, 'A')#
insert into person values(2, 'B')#
insert into person values(3, 'C')#
insert into person values(4, 'D')#
delete from person where id = 1#
db2 => select * from person#
ID NAME
----------- --------------------
2 B
3 C
4 D
3 record(s) selected.
db2 => select * from audit_person#
OP_TIME OP ID NAME
-------------------------- --- ----------- --------------------
2011-11-23-13.27.05.562000 DEL 1 A
1 record(s) selected.
上一个:DB2 V9 使用备份 建立新数据库的时候 提示数据库文件已满?不知道是怎么回事?
下一个:比较下oracle、SQL Server、DB2、sybase、mySQL五款最新数据系统优缺点。