2015-10-07 225 views
1

我一直試圖在表中插入數據,比如說當管理員動態插入兩個其他表中的數據時,即table_1和table_2。我能夠得到所需的輸出只有一個表,但不是多個表。我如何通過在oracle中使用觸發器來實現這一點?如何使用oracle中的觸發器從另外兩個表中插入數據在另一個表中插入數據

+0

創建兩個觸發器,一個對TABLE_1等上TABLE_2。 –

+0

並且應用相同的邏輯只是表名將會不同 –

+0

如果只希望在相同的數據同時插入到兩個基礎表中時插入到ADMIN表中,您能澄清一下您的問題嗎? –

回答

0

2個表創建2個觸發器爲拉利特在其他表建議

CREATE or replace TRIGGER TRG_TAB1 
      BEFORE INSERT ON tab1... 

... insert into admin (name) values (:new.name) 

CREATE or replace TRIGGER TRG_TAB2 
      BEFORE INSERT ON tab2... 
... insert into admin (name) values (:new.name) 
+0

我猜表名應該不同? –

+0

OP希望以其他方式觸發table_1和table_2向管理員插入數據。 –

+0

@Moudiz'new.name'將會失敗,new應該被引用爲':new'。 –

0

您需要創建兩個單獨的INSERT觸發器,一個在table_1,另一個在table_2到將數據插入到admin表中。

觸發1:

CREATE OR REPLACE TRIGGER table_1_after_insert 
AFTER INSERT 
    ON table_1 
    FOR EACH ROW 
BEGIN 

    -- Insert record into admin table 
    INSERT INTO admin 
    (column1, 
    column2, 
    column3, 
    column4, 
    column5) 
    VALUES 
    (:new.column1, 
    :new.column2, 
    :new.column3, 
    :new.column4, 
    :new.column5); 

END; 
/

觸發2:

CREATE OR REPLACE TRIGGER table_2_after_insert 
AFTER INSERT 
    ON table_2 
    FOR EACH ROW 
BEGIN 

    -- Insert record into admin table 
    INSERT INTO admin 
    (column1, 
    column2, 
    column3, 
    column4, 
    column5) 
    VALUES 
    (:new.column1, 
    :new.column2, 
    :new.column3, 
    :new.column4, 
    :new.column5); 

END; 
/
相關問題