当前位置: 代码迷 >> Oracle开发 >> 写了个trigger,如何取到当前插入的值
  详细解决方案

写了个trigger,如何取到当前插入的值

热度:2736   发布时间:2013-02-26 00:00:00.0
写了个trigger,怎么取到当前插入的值?
往table1这个表里的字段c1,c2,c3,c4插值。trigger要把新插入的这些值放到另一个表table2的c1,c2,c3,c4字段里。

我现在就是不知道在trigger里怎么取到新插入的这些值?

我写的trigger如下,但是这个trigger只能插入固定的值

CREATE OR REPLACE TRIGGER TR_table1
AFTER INSERT ON table1
FOR EACH ROW
BEGIN
IF INSERTING THEN
 INSERT INTO table2 values ('aaa','bbb','ccc','ddd');
END IF;
END;

------解决方案--------------------------------------------------------
delete 可取:old的值
insert 可取:new的值
update可取:old和:new的值
------解决方案--------------------------------------------------------
看你的trigger 应该用自治事务
pragma autonomous_transaction
------解决方案--------------------------------------------------------
CREATE OR REPLACE TRIGGER TR_FLOW
     AFTER INSERT ON Table1
     FOR EACH ROW
DECLARE
    PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  IF INSERTING THEN INSERT INTO table2 values (:new.c1,:new.c2,:new.c3,:new.c4,:new.c5,:new.c6,0,to_char(sysdate,'yyyy-mm'),'aaa','中文'); END IF;
   COMMIT;
END; /  
  相关解决方案