我的做法是这样的:--------------- 当一个表 x 的内容变化时,将其变化的内容添加到另一个表中 ---这个用after 当一个表 x 的内容变化时,这个表的Y也变化 ---这个用before
“before可以对即将插入、修改、删除的记录进行修改! after 无法完成对即将插入、修改、删除的记录的修改!” 能否举例说明。理解不了。
1 create or replace trigger u_insert 2 before insert on u 3 for each row 4 declare 5 str varchar2(20); 6 begin 7 str:='aaa'; 8 :new.u1:=str; 9* end u_insert; SQL> /Trigger created.SQL> select * from u;U1 U2 ---------- ---------- a1 b1 a1 b1 a2 b1SQL> insert into u values ('bbb','bbb');1 row created.SQL> commit;SQL> select * from u;U1 U2 ---------- ---------- a1 b1 a1 b1 a2 b1 aaa bbb 这样的操作 before 可以 但是after 不可以
当一个表 x 的内容变化时,将其变化的内容添加到另一个表中
---这个用after
当一个表 x 的内容变化时,这个表的Y也变化
---这个用before
after 无法完成对即将插入、修改、删除的记录的修改!”
能否举例说明。理解不了。
2 before insert on u
3 for each row
4 declare
5 str varchar2(20);
6 begin
7 str:='aaa';
8 :new.u1:=str;
9* end u_insert;
SQL> /Trigger created.SQL> select * from u;U1 U2
---------- ----------
a1 b1
a1 b1
a2 b1SQL> insert into u values ('bbb','bbb');1 row created.SQL> commit;SQL> select * from u;U1 U2
---------- ----------
a1 b1
a1 b1
a2 b1
aaa bbb
这样的操作 before 可以 但是after 不可以