PL/SQL之触发器谓词

ORACLE提供 INSERTING, UPDATING, DELETING判断发生的操作。

INSERTING:如果触发的语句为INSERT语句,则为TRUE,否则为FALSE;

UPDATING:如果触发的语句为UPDATE语句,则为TRUE,否则为FALSE;

DELETING:如果触发的语句为DELETE语句,则为TRUE,否则为FALSE;

基本使用:

CREATE OR REPLACE TRIGGER tri_test
BEFORE DELETE OR INSERT OR UPDATE ON mytest
FOR EACH ROW
WHEN (OLD.ID = 1)
BEGIN
  DBMS_OUTPUT.PUT_LINE('触发器开始执行');
  CASE WHEN INSERTING THEN
      DBMS_OUTPUT.PUT_LINE('插入逻辑植入');
      RAISE_APPLICATION_ERROR(-20001,'id为1的用户不能插入');
    WHEN UPDATING THEN
      DBMS_OUTPUT.PUT_LINE('更新逻辑植入');
      RAISE_APPLICATION_ERROR(-20002,'id为1的用户不能更新');
    WHEN DELETING THEN
      DBMS_OUTPUT.PUT_LINE('删除逻辑植入');
      RAISE_APPLICATION_ERROR(-20003,'id为1的用户不能删除');
  END CASE;
END;
PL/SQL之触发器谓词_第1张图片

你可能感兴趣的:(谓词,updating,deleting,inserting)