我试图重新创建你的场景,它似乎对我来说工作得很好。所以我认为你应该再看看你的实现。寻找你所编码的内容与这里的内容之间的区别,也许这就是答案的出处。
这里是我的触发器
SQL> create or replace
2 trigger t1_compound
3 for insert or update on t1
4 compound trigger
5
6 after statement is
7 begin
8 update t2 set t1_id = nvl(t1_id,0) + 1 where cod = 12;
9 end after statement;
10 end;
11/
Trigger created.
SQL>
SQL> create or replace
2 trigger t2_compound
3 for insert or update on t2
4 compound trigger
5
6 after statement is
7 begin
8 update t3 set t2_id = nvl(t2_id,0) + 1 where cod = 12;
9 end after statement;
10 end;
11/
Trigger created.
SQL>
...这里是测试数据...
SQL> select id, cod from t1
2/
ID COD
---------- ----------
1 12
SQL> select id, cod, t1_id from t2
2/
ID COD T1_ID
---------- ---------- ----------
11 12
SQL> select id, cod, t2_id from t3
2/
ID COD T2_ID
---------- ---------- ----------
111 12
SQL>
...这是什么情况,当我发出第一个表的更新...
SQL> update t1 set dt = sysdate
2 where id = 1
3/
1 row updated.
SQL> select id, cod, t1_id from t2
2/
ID COD T1_ID
---------- ---------- ----------
11 12 1
SQL> select id, cod, t2_id from t3
2/
ID COD T2_ID
---------- ---------- ----------
111 12 1
SQL>
来源
2010-01-05 13:15:54
APC
是什么在THEOTHERTABLE触发什么样子的? – 2010-01-07 01:31:59
这是一个简单的触发器,更新THEOTHERTABLE时触发。我已经尝试在每行之前输出到dbms_output,并且在语句之后,它在编译触发器TRIGGER之后第一次触发 – Joao 2010-01-07 16:28:50