17,378
社区成员
发帖
与我相关
我的任务
分享

-- 给你写个例子
SQL>
SQL> create table ta(id int, name varchar(10), age int);
Table created
SQL> create table tb(id int, old_name varchar(10), new_name varchar(10));
Table created
SQL> create trigger tri_ta_update
2 before update on ta
3 for each row
4 begin
5 insert into tb(id, old_name, new_name)
6 values(:new.id, :old.name, :new.name);
7 end;
8 /
Trigger created
SQL> begin
2 insert into ta values(100, 'zs', 100);
3 update ta set name = 'abc';
4 update ta set name = 'zxy';
5 end;
6 /
PL/SQL procedure successfully completed
SQL> col id format a5;
SQL> select * from ta;
ID NAME AGE
----- ---------- ---------------------------------------
100 zxy 100
SQL> select * from tb;
ID OLD_NAME NEW_NAME
----- ---------- ----------
100 zs abc
100 abc zxy
SQL> drop table ta purge;
Table dropped
SQL> drop table tb purge;
Table dropped
SQL>