2011-06-13 54 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;