zoukankan      html  css  js  c++  java
  • Oracle触发器使用

    --:NEW 和:OLD使用方法和意义,new 只出现在insert和update时,old只出现在update和delete时。在insert时new表示新插入的行数据,update时new表示要替换的新数据、old表示要被更改的原来的数据行,delete时old表示要被删除的数据。

    --:new,:old只能用在行级触发器

    --创建触发器

    CREATE OR REPLACE TRIGGER au_tt_productinfo

    AFTER  INSERT OR UPDATE OR DELETE ON tt_productinfo

    FOR EACH ROW --行级触发器 , 不加则为表级触发器 (每更行一行数据都会调用异常触发器)

    --when (new_value.department_id<>80 )
    --限制不是必须的。此例表示如果列department_id不等于80的时候,触发器就会执行。

    DECLARE
        -- local variables here uid varchar2(10);
        --SELECT seq_trg_id.NEXTVAL INTO :NEW.e_id FROM dual; 获取最新序列值

    BEGIN

    UPDATE tt_cidsinfo tc SET tc.cids_name ='wowowo';

          IF  inserting THEN  --插入操作

              Dbms_output.put_line('inserting');

          ELSIF   updating THEN --更新操作

             -- Dbms_output.put_line('updating');

             -- Dbms_output.put_line(100);

            -- Dbms_output.put_line(:OLD.sep_name);

                IF :OLD.seque_no=1 THEN
                  RAISE_APPLICATION_ERROR(-20001, '序号不能等于1');  --抛出异常  -20000 到 -20999 之间
              ELSE
                   INSERT INTO tt_cidsinfo(cids_id,cids_name) VALUES(101,:OLD.sep_name);  --通过:new 或则:old 来获取触发器作用表的值
              END IF;

        ELSIF deleting THEN  --删除操作

               Dbms_output.put_line('deleting');

               Dbms_output.put_line(:OLD.sep_name);

       END IF;

    END;

  • 相关阅读:
    DYCOM之Windows Phone 7.1网络通信
    快速开发winform、window mobile、silverlight多端通信系统
    DYCOM白皮书(技术方向)第一章
    windows phone7 mango 多人在线游戏
    wp7模拟器多实例调试程序
    silverlight5 rc矢量打印
    让你的Silverlight应用成为单机软件
    wp7录音应用发布
    当TX遇上LM的我
    wp7应用DYband发布
  • 原文地址:https://www.cnblogs.com/gossip/p/1942935.html
Copyright © 2011-2022 走看看