2012-08-09 29 views
0

我需要在TABLE1 INSERT觸發器之前創建一個這樣它插入COL2和新行的COL3被插入到TABLE1TABLE2TABLE1.FIELD1 = 'XYZ'。我該如何做到這一點,只有當條件滿足時觸發器纔會被觸發?通過檢查字段的值創建觸發器被插入在ORALCE

+0

第一次嘗試這個文檔http://www.techonthenet.com/oracle/triggers/before_insert.php和提高關心你是否仍然無法完成。 – sundar 2012-08-09 12:44:03

+0

是否在TABLE1上插入的行被引用爲:NEW?準確地說是 – chemicalkt 2012-08-09 12:46:05

+0

。你是對的。 – sundar 2012-08-09 12:46:51

回答

1
CREATE OR REPLACE TRIGGER my_trigger 
    before insert 
    ON table_1 
    FOR EACH ROW 
BEGIN 
    IF :NEW.FIELD1 = 'XYZ' 
    then 
    INSERT INTO table_2 (col1, col2) VALUES (:NEW.col1, :NEW.col2); 
    END IF; 
END; 
/

或如何a_horse_with_no_name注意,您可以使用該WHEN條款

CREATE OR REPLACE TRIGGER my_trigger 
    before insert 
    ON table_1 
    FOR EACH ROW 
    WHEN (NEW.FIELD1 = 'XYZ') 
BEGIN 

    INSERT INTO table_2 (col1, col2) VALUES (:NEW.col1, :NEW.col2); 

END; 
/
+3

您可以將該IF條件移至觸發器定義,以便在該列未包含該值時觸發器甚至不會被觸發。 – 2012-08-09 12:54:13