2013-10-03 64 views
0

我有3個表A,B,C。 我有這3代表與聯接條件插入第四臺D. 現在我想的是這3個表(A,B,C)應更新第4表D.能製造「的INSERT或UPDATE」的存儲過程任何人請tel如何在pl/sql中寫入觸發器?多個表上的Oracle觸發器

回答

1

你需要三個觸發器,即做D所需的更新。例如。爲表A,這可能是:

CREATE OR REPLACE TRIGGER trg_ins_upd_A 
    AFTER INSERT OR UPDATE ON A 
    FOR EACH ROW 
DECLARE 
    -- required declarations 
BEGIN 
    IF INSERTING THEN 
    UPDATE D 
     SET column1 = :new.column 
    WHERE column1 = :old.column ... 
    END IF; 
    IF UPDATING THEN 
    -- do required updates on D here 
    END IF; 
END; 

如果你有一個執行此更新,你可能會實施類似這樣的東西存儲過程:

CREATE OR REPLACE TRIGGER trg_ins_upd_A 
    AFTER INSERT OR UPDATE ON A 
    FOR EACH ROW 
DECLARE 
    -- required declarations 
BEGIN 
    IF INSERTING THEN 
    my_procedure_one (...); 
    END IF; 
    IF UPDATING THEN 
    my_procedure_two (...); 
    END IF; 
END; 
+0

非常感謝,我會嘗試這個:) – user2698645

+0

爲什麼我們需要複製IF子句在插入時引發火災或只更新? –

+0

好點 - 我想我太快創建了第二個例子;) – Trinimon