当前位置:数据库 > DB2 >>

DB2数据库前置delete触发器能否创建,若能如何创建?

其他: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五款最新数据系统优缺点。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,