zoukankan      html  css  js  c++  java
  • Oracle 的一个非常好的触发器例子

    CREATE OR REPLACE TRIGGER test_trigger
    AFTER INSERT OR UPDATE OF sal OR DELETE 
    ON emp
    FOR EACH ROW
    BEGIN
      CASE
      WHEN INSERTING THEN  --当事件为INSERT时,INSERTING为TRUE
        /*
        :NEW关键字可以获取新记录的数据,它只能用于行级触发器
        */
        DBMS_OUTPUT.PUT_LINE('INSERT INTO EMP VALUES('||:NEW.empno||','||:NEW.ename||','||:NEW.job||','||:NEW.mgr||','||:NEW.hiredate||','||:NEW.sal||','||:NEW.comm||','||:NEW.deptno||')');
      WHEN UPDATING THEN  --当事件为UPDATE时,UPDATING为TRUE
        DBMS_OUTPUT.PUT_LINE('UPDATING emp which empno='||:OLD.empno||'to sal:'||:NEW.sal);--:OLD关键字可以获取旧记录的数据,它只能用于行级触发器
      WHEN DELETING THEN  --当事件为DELETE时,DELETING为TRUE
        DBMS_OUTPUT.PUT_LINE('DELETING emp which empno='||:OLD.empno);--:OLD关键字可以获取旧记录的数据,它只能用于行级触发器
      ELSE
        NULL;
      END CASE;
    EXCEPTION
      WHEN DUP_VAL_ON_INDEX THEN
        NULL;
      WHEN OTHERS THEN
        RAISE_APPLICATION_ERROR(SQLCODE,SQLERRM);
    END test_trigger;
  • 相关阅读:
    Django的models介绍
    Django的模板继承
    Django的模板语言介绍
    django的视图函数介绍
    django的流程分析
    1、数据库优化
    git 开发中的总结
    ob
    docker-compose
    如何批量删除Docker中已经停止的容器
  • 原文地址:https://www.cnblogs.com/canyangfeixue/p/2721283.html
Copyright © 2011-2022 走看看