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 閱讀(261) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 浑源县| 平乐县| 峡江县| 商洛市| 高要市| 城固县| 渭南市| 台北县| 元朗区| 南木林县| 白玉县| 乌拉特前旗| 思茅市| 白城市| 东方市| 河北省| 钦州市| 浦县| 辉南县| 黎平县| 鹰潭市| 新沂市| 精河县| 武胜县| 岚皋县| 镇沅| 姜堰市| 习水县| 绥阳县| 渭南市| 大荔县| 沾益县| 黔江区| 舟曲县| 青浦区| 阳原县| 德令哈市| 宁夏| 阜城县| 治多县| 琼海市|