zoukankan      html  css  js  c++  java
  • 触发器after和before

    --after和before
    CREATE OR REPLACE TRIGGER del_emp1
                   BEFORE update OR insert OR delete ON scott.emp
             REFERENCING new AS nn  old AS oo
             FOR EACH ROW
             WHEN (nn.sal > 2000)
    BEGIN
             IF INSERTING THEN
                dbms_output.put_line('THE OPERATION IS INSERT');
             ELSIF UPDATING THEN
                 dbms_output.put_line('THE OPERATION IS UPDATE');
             ELSIF DELETING THEN
                 dbms_output.put_line('THE OPERATION IS DELETE');
             ELSE
                 dbms_output.put_line('OTHERS OPERATION');
             END IF;
    END;
    CREATE OR REPLACE TRIGGER del_emp2
                   after update OR insert OR delete ON scott.emp
             REFERENCING new AS nn  old AS oo
             FOR EACH ROW
             WHEN (nn.sal > 2000)
    BEGIN
             IF INSERTING THEN
                dbms_output.put_line('THE OPERATION IS INSERT');
             ELSIF UPDATING THEN
                 dbms_output.put_line('THE OPERATION IS UPDATE');
             ELSIF DELETING THEN
                 dbms_output.put_line('THE OPERATION IS DELETE');
             ELSE
                 dbms_output.put_line('OTHERS OPERATION');
             END IF;
    END;
    update emp set sal=7000 where emp.ename='SMITH';
    --after和before的区别是:before是先执行begin后触发触发器,after是先执行触发器而后执行begin内容.
    CREATE OR REPLACE TRIGGER check_emp
                   BEFORE update OR insert OR delete ON scott.emp
             REFERENCING new AS nn old AS oo
             FOR EACH ROW
             /*WHEN (nn.sal < 2000)*/
    BEGIN
             IF INSERTING THEN
                dbms_output.put_line('THE OPERATION IS INSERT');
             ELSIF UPDATING THEN
                 dbms_output.put_line('THE OPERATION IS UPDATE');
             ELSIF DELETING THEN
                 dbms_output.put_line('THE OPERATION IS DELETE');
             ELSE
                 dbms_output.put_line('OTHERS OPERATION');
             END IF;
    END;
    select * from emp;
    begin  
           savepoint s1;
           delete emp where sal=4000;
           rollback to s1;
    end;
    
           
  • 相关阅读:
    PS学习【不间断在本页面更新】
    html5的css3等学习资料网页合集
    分别实现图片沿着XYZ轴旋转的动画
    css3实现循环抖动等动画
    jpg图片隐藏压缩文件
    基础知识【笔记】
    java爬虫,爬取网址、爬取视频、爬取图片
    纯js实现音乐播放的功能
    iOS
    iOS -MVC
  • 原文地址:https://www.cnblogs.com/kiskistian/p/7268576.html
Copyright © 2011-2022 走看看