关于触发器的帮助

时间:2011-06-13 10:09:03

标签: oracle triggers

我有一张桌子(TableA)。在这个表上,我创建了一个触发器,它将一行插入另一个表(TableB),用于在TableA上进行插入,更新和删除操作。我的目的是跟踪TableA的修改。

我有单触发器来执行此操作。 (在TableA上插入或更新或删除之前创建触发器trig_name ... - 种类)。

现在我需要在表A上执行的实际操作是什么。当触发器在TableB中插入一行时,我希望在TableA上执行的实际操作也插入到列中。

是否有可能使用单个触发器捕获在TableA上执行的操作,或者是否必须为每个DML语句操作创建单独的触发器?

TIA。

2 个答案:

答案 0 :(得分:4)

引用the docs

  

检测触发触发器的DML操作

     

如果多种类型的DML操作可以触发触发器(例如,ON INSERT OR DELETE或UPDATE OF emp),触发器主体可以使用条件谓词INSERTING,DELETING和UPDATING来检查哪种类型的语句触发触发器。

     

在触发器主体的代码中,您可以根据触发触发器的DML操作的类型执行代码块:

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

答案 1 :(得分:0)

您可以在PL / SQL中使用以下谓词:

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