日期:2014-05-17 浏览次数:21158 次
SQL> select * from t;
ID COL_1
---------- -----
1 aaa
2 bbb
3 ccc
4 ddd
SQL> create or replace trigger tri_ta
2 before update of col_1 on t
3 for each row
4 begin
5 insert into ta values(:old.col_1,:new.col_1);
6 end tri_ta;
7 /
Trigger created
SQL> select * from ta;
COL_1 COL_2
---------- ----------
SQL>
SQL> update t set col_1='000'
2 where id=1
3 /
1 row updated
SQL> select * from ta;
COL_1 COL_2
---------- ----------
aaa 000
SQL>
------解决方案--------------------
那应该会触发的。
或是在dba_triggers看看触发器的状态。
------解决方案--------------------
CREATE TABLE t1(fid INT,fno VARCHAR2(20)); INSERT INTO t1 SELECT 1,'aa' FROM dual UNION ALL SELECT 2,'bb' FROM dual UNION ALL SELECT 3,'cc' FROM dual UNION ALL SELECT 4,'dd' FROM dual; SELECT * FROM t1; CREATE TABLE t2(fid INT,fid2 INT); CREATE OR REPLACE TRIGGER tri_t1 BEFORE UPDATE OF fid ON t1 FOR EACH ROW BEGIN INSERT INTO t2 VALUES(:old.fid,:new.fid); END; UPDATE t1 SET fid=5; SELECT * FROM t2; FID FID2 1 5 2 5 3 5 4 5
------解决方案--------------------
同意六楼的看法,按照你说的,这个触发器应该执行没有问题的。
首先确认你的触发器是有效状态。
------解决方案--------------------
设置触发器后有没有加上 / 啊?或许是没有设置成功