小编joh*_*why的帖子

如何在 Oracle db 中的同一个 `Instead Of` 触发器中组合插入、更新和删除?

创建Instead Of触发器时,Sql Developer 允许在同一个触发器中包含所有 3 个 DML 操作:

在此处输入图片说明

结果 SQL 如下所示:

CREATE OR REPLACE TRIGGER TRIGGER1 
INSTEAD OF DELETE OR INSERT OR UPDATE ON PO_COSTED_BOM_V 
BEGIN
  NULL;
END;
Run Code Online (Sandbox Code Playgroud)

我能够结合InsertUpdate喜欢这样的:

CREATE OR REPLACE TRIGGER TRIGGER1 
INSTEAD OF INSERT OR UPDATE OR DELETE ON PO_COSTED_BOM_V 
BEGIN
  UPDATE SRC_TBL SET CFG_VALUE = :NEW.CFG_VALUE
  WHERE CFG_NAME = :NEW.CFG_NAME;
  IF SQL%NOTFOUND THEN
      INSERT INTO SRC_TBL (CFG_NAME, CFG_VALUE) 
         VALUES(:NEW.CFG_NAME, :NEW.CFG_VALUE);
  END IF;
END;
Run Code Online (Sandbox Code Playgroud)
  • 但是如何将Delete语句放入触发器中?
  • 触发器如何知道执行了哪个 DML 操作?

谢谢

trigger oracle plsql dml

1
推荐指数
1
解决办法
9452
查看次数

标签 统计

dml ×1

oracle ×1

plsql ×1

trigger ×1