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;