我有3個表A,B,C。 我有這3代表與聯接條件插入第四臺D. 現在我想的是這3個表(A,B,C)應更新第4表D.能製造「的INSERT或UPDATE」的存儲過程任何人請tel如何在pl/sql中寫入觸發器?多個表上的Oracle觸發器
0
A
回答
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;
1
根據查詢的複雜性創造了第四個表的數據,這可能會更好地實現(更強大的,更大的靈活性和更少的代碼)與實時快速刷新物化視圖。
http://docs.oracle.com/cd/B28359_01/server.111/b28326/repmview.htm
相關問題
- 1. Oracle觸發器 - 更新表上的多個行
- 2. Oracle SQL觸發器上的突變表
- 3. 修改多個oracle觸發器
- 4. SQL觸發器列表Oracle
- 5. 我們可以在Oracle DB的單個表上創建多少個觸發器
- 6. 涉及多個表的觸發器Oracle,PL/SQL
- 7. 如何更改oracle中多個表的觸發器?
- 8. Oracle觸發器
- 9. mysql觸發器到oracle觸發器
- 10. ORACLE觸發器上的錯誤
- 11. oracle觸發器上的編譯錯誤
- 12. 獲取觸發Oracle觸發器的值
- 13. 調用另一個觸發器的Oracle觸發器
- 14. Oracle SQL(觸發器)
- 15. Oracle觸發器:raise_application_error
- 16. Oracle 10g觸發器
- 17. 觸發器在Oracle
- 18. 從Oracle觸發器
- 19. Oracle SQL觸發器
- 20. ORACLE 11g觸發器
- 21. SQL Oracle觸發器
- 22. 多個行上的sql觸發器
- 23. 如何觸發多列表上的觸發器?
- 24. INSTEAD-OF-INSERT觸發器的多個表
- 25. Oracle數據庫中的表觸發器的多模式權限
- 26. 在同一個表上有多個觸發器的缺點
- 27. Oracle 10g中的觸發器
- 28. Oracle - 在SELECT上模擬觸發器
- 29. Oracle AFTER INSERT觸發器未觸發
- 30. 上點擊過多個觸發器
非常感謝,我會嘗試這個:) – user2698645
爲什麼我們需要複製IF子句在插入時引發火災或只更新? –
好點 - 我想我太快創建了第二個例子;) – Trinimon