Jcat
          寵辱不驚,閑看庭前花開花落~~
          posts - 173,comments - 67,trackbacks - 0
          注意,為了能在終端看見put_line的輸出,還需要先開啟
          set serveroutput on

          ?

          --用來測試的表
          create table test_tri(
          a1 int,
          a2 int
          )
          tablespace test


          -----行級insert觸發器
          -----
          1) 插入的一行新數據保存在:new
          2)
          insert觸發器沒有:old值
          3) 對:new的修改,只能定義在before類型的觸發器中

          ---觸發器語法---
          create or replace trigger 名稱
          [after|before] [delete|update|insert]
          [of 列名] [on 表名]
          [referencing new as 新行別名 old as 舊行別名]
          [for each row] [when(條件)]
          declare
          ....
          begin
          ...
          exception
          ....
          end;


          --定義
          create or replace trigger test_before_insert
          before insert on test_tri
          for each row when(new.a2 is null)
          begin
          ?? ?dbms_output.put_line('insert row original: a1=' || :new.a1 || ' a2=' || :new.a2);
          ?? ?:new.a2 := :new.a1 * 2;? ?
          end;
          /

          create or replace trigger test_after_insert
          after insert on test_tri
          for each row
          begin
          ?? ?dbms_output.put_line('insert row actual: a1=' || :new.a1 || ' a2=' || :new.a2);? ?
          end;
          /

          --測試

          SQL> insert into test_tri(a1) values(1);
          insert row original: a1=1 a2=
          insert row actual: a1=1 a2=2

          SQL> insert into test_tri values(2,3);
          insert row actual: a1=2 a2=3

          SQL> select * from test_tri;
          ??????? A1???????? A2
          ---------- ----------
          ???????? 1????????? 2(由觸發器生成的值)
          ???????? 2????????? 3



          -----DDL觸發器-----
          --任何create語句都會觸發這個語句

          create or replace trigger test_ddl_trigger
          before create on schema
          begin
          ??? dbms_output.put_line( 'DDL Trigger' );
          ??? insert into test_tri values(9,9);
          end;
          posted on 2010-01-11 14:58 Jcat 閱讀(270) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 中牟县| 永宁县| 长春市| 堆龙德庆县| 盱眙县| 广平县| 吉安县| 乌拉特前旗| 宜宾县| 辽中县| 湘阴县| 任丘市| 蒙城县| 新津县| 渭南市| 辽中县| 泰和县| 诏安县| 嵊州市| 扎兰屯市| 邮箱| 车致| 台中县| 商洛市| 廉江市| 永定县| 上饶市| 威宁| 封开县| 土默特左旗| 泾阳县| 奉节县| 莲花县| 拉孜县| 江油市| 额尔古纳市| 江永县| 文山县| 获嘉县| 宜宾县| 正镶白旗|