我有一张桌子(TableA)。在这个表上,我创建了一个触发器,它将一行插入另一个表(TableB),用于在TableA上进行插入,更新和删除操作。我的目的是跟踪TableA的修改。
我有单触发器来执行此操作。 (在TableA上插入或更新或删除之前创建触发器trig_name ... - 种类)。
现在我需要在表A上执行的实际操作是什么。当触发器在TableB中插入一行时,我希望在TableA上执行的实际操作也插入到列中。
是否有可能使用单个触发器捕获在TableA上执行的操作,或者是否必须为每个DML语句操作创建单独的触发器?
TIA。
答案 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;