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

          ?

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


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

          ---觸發(fā)器語法---
          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(由觸發(fā)器生成的值)
          ???????? 2????????? 3



          -----DDL觸發(fā)器-----
          --任何create語句都會觸發(fā)這個語句

          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 閱讀(269) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 三亚市| 大足县| 永寿县| 长垣县| 庆元县| 镇远县| 东光县| 南京市| 旺苍县| 成安县| 赤城县| 黄浦区| 高淳县| 漳浦县| 德州市| 蒙阴县| 建瓯市| 梅河口市| 沭阳县| 河间市| 修文县| 松溪县| 九台市| 乌苏市| 信丰县| 陈巴尔虎旗| 伊川县| 中宁县| 宁海县| 陆河县| 林西县| 巨野县| 龙里县| 江华| 乡宁县| 固镇县| 塔河县| 鹤峰县| 犍为县| 双柏县| 谢通门县|