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
          主站蜘蛛池模板: 诸暨市| 桂阳县| 南昌县| 外汇| 涡阳县| 若尔盖县| 太白县| 达孜县| 资阳市| 凤台县| 临潭县| 漯河市| 苏尼特右旗| 武宁县| 华亭县| 龙川县| 陵水| 临海市| 邻水| 都安| 门头沟区| 南昌市| 南华县| 青海省| 和平区| 宁夏| 连平县| 延长县| 景宁| 南投县| 孟村| 刚察县| 剑阁县| 柳州市| 清流县| 讷河市| 巨鹿县| 鄯善县| 商城县| 鸡泽县| 双流县|