2011-06-13 70 views
3

我有一個表格(TableA)。在這個表上,我創建了一個觸發器,它將一行插入到另一個表(TableB)中,以插入,更新和刪除TableA上的操作。我的意圖是跟蹤TableA上的修改。關於觸發器的幫助

我有單觸發器來做到這一點。 (在插入或更新或刪除TableA ...之前創建觸發器trig_name - 種類)。

現在我需要在表A上執行的實際操作是什麼。當觸發器向TableB插入一行時,我希望對TableA執行的實際操作也插入列中。

是否有任何可能性來捕獲在單個觸發器上對TableA執行的操作或者是否必須爲每個DML語句操作創建單獨的觸發器?

TIA。

回答

4

引用the docs

檢測DML操作其發射的觸發

如果多於一種類型的DML操作可以觸發的觸發(例如,ON插入或刪除或電磁脈衝UPDATE) ,觸發器主體可以使用條件謂詞INSERTING,DELETING和UPDATING來檢查哪種類型的語句觸發了觸發器。

在觸發器主體的代碼,你可以執行根據其種類DML操作觸發觸發器的代碼塊:

IF INSERTING THEN ... END IF; 
IF UPDATING THEN ... END IF; 
+0

感謝您的回覆。有用。 – Navin 2011-06-13 11:16:41

0

您可以使用下面的謂詞在PL/SQL :

IF INSERTING THEN ... END IF; 
IF UPDATING THEN ... END IF; 
IF DELETING THEN ... END IF;