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;
    
           
  • 相关阅读:
    百度打不开
    欢迎大家来到华网科技
    可扩展消息出席协议:核心 RFC 3920
    谈网站的黏度
    手机游戏沙龙7月11日谈话记录
    基于开源软件做个和GTalk聊天的小命令行程序
    WAP网站推广
    算法的魅力
    JSP技术在WAP开发中的应用
    在J2ME实现UTF8转换为Unicode编码的方法
  • 原文地址:https://www.cnblogs.com/kiskistian/p/7268576.html
Copyright © 2011-2022 走看看