SQL> select * from a;未选定行SQL> select * from ta; ID NAME N ---------- ---------- ---------- 1 aaa 1 2 bbb 1SQL> create or replace trigger trg_ta_update 2 before update on ta 3 for each row 4 begin 5 insert into a values(:new.id); 6 end; 7 /触发器已创建SQL> update ta set name='aab' where id=1;已更新 1 行。SQL> select * from a; AA ---------- 1SQL> rollback;重算已完成。SQL> select * from a;未选定行SQL> 这样的问题自己操作一下就清楚了
---------- ---------- ----------
1 aaa 1
2 bbb 1SQL> create or replace trigger trg_ta_update
2 before update on ta
3 for each row
4 begin
5 insert into a values(:new.id);
6 end;
7 /触发器已创建SQL> update ta set name='aab' where id=1;已更新 1 行。SQL> select * from a; AA
----------
1SQL> rollback;重算已完成。SQL> select * from a;未选定行SQL> 这样的问题自己操作一下就清楚了
因为我的触发器里是调用一个JAVA方法,而该方法不是对数据库进行操作,而是其他动作,如发出一个RMI调用。调用一旦发出,就不能像数据库一样ROLLBACK了。
我这样解释清楚了吗?
谢谢大家!
就是了