往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;

解决方案 »

  1.   

    受累看看我这个SQL对吗?怎么执行后,数据库死了呢?
    CREATE OR REPLACE TRIGGER TR_FLOW
    AFTER INSERT ON Table1
    FOR EACH ROWBEGINIF 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;END;
      

  2.   

    delete 可取:old的值
    insert 可取:new的值
    update可取:old和:new的值
      

  3.   


    我现在trigger写好了,但是一执行就把数据库锁死了
      

  4.   

    看你的trigger 应该用自治事务
    pragma autonomous_transaction
      

  5.   

    如果你的trigger对的话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;
    /
      

  6.   

    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; /