informix的觸發器的使用

學習informix的觸發器的使用:
生成觸發器:
觸發器的大組件:
 觸發器事件 定義激活觸發器的事件。觸發器事件包括INSERT、UPDATE與DELETE
 定時條件   定義觸發器何時執行。它可以在觸發器事件執行之前(BEFORE)執行,也可以在觸發器事件執行之後(AFTER)執行或在觸發器事件執行過程中(FOR EACH ROW)執行。
 觸發器操作 定義激活觸發器時執行的SQL語句,包括INSERT,DELETE,UPDATE與EXECUTE PROCEDURE
INSERT觸發器的語法如下:
 
        CREATE TRIGGER trigger_name INSERT ON table_name
          BEFORE [WHEN (condition)] (trig_action1,trig_action2,...)|
          FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)|
          AFTER [WHEN (condition)] (trig_action1,trig_action2,...)|
        [DISABLED|ENABLED]
or
        CREATE TRIGGER trigger_name INSERT ON table_name
          REFERENCING NEW AS correlation_name
          FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)
          [BEFORE [WHEN (conditon)](trig_action3,trig_action4,...)]|
          [AFTER [WHEN (conditon)] (trig_action3,trig_action4,...)]
        [DISABLED|ENABLED]
DELET觸發器的語法如下:
        CREATE TRIGGER trigger_name DELETE ON table_name
          BEFORE [WHEN (condition)] (trig_action1,trig_action2,...)|
          FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)|
          AFTER [WHEN (condition)] (trig_action1,trig_action2,...)|
        [DISABLED|ENABLED]
or
        CREATE TRIGGER trigger_name DELETE ON table_name
          REFERENCING NEW AS correlation_name
          FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)
          [BEFORE [WHEN (conditon)](trig_action3,trig_action4,...)]|
          [AFTER [WHEN (conditon)] (trig_action3,trig_action4,...)]
        [DISABLED|ENABLED]
UPDATE觸發器的語法如下
       
        CREATE TRIGGER trigger_name UPDATE [OF (column,column,...)] ON table_name
          BEFORE [WHEN (condition)] (trig_action1,trig_action2,...)|
          FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)|
          AFTER [WHEN (condition)] (trig_action1,trig_action2,...)|
        [DISABLED|ENABLED]
  or
        CREATE TRIGGER trigger_name UPDATE [OF (column,column,...)] ON table_name
          REFERENCING NEW AS correlation_name OLD AS correlation_name
          FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)
          [BEFORE [WHEN (conditon)](trig_action3,trig_action4,...)]|
          [AFTER [WHEN (conditon)] (trig_action3,trig_action4,...)]
        [DISABLED|ENABLED]     
要了解觸發器的語法,就要將其分解如下:
        CREATE TRIGGER 生成觸發器對象所需的語句。
        trigger_name  用戶定義的觸發器名,在數據庫中唯一,不超過18個字符,以字母開始。
 
      INSERT是一個觸發器事件,表中插入行時觸發器被激活,一個表只有一個INSERT觸發器,
      DELETE是一個觸發器事件,表中刪除行時觸發器被激活,一個表只有一個DELETE觸發器。
      UPDATE是一個觸發器事件,表中根性列時觸發器被激活,如果包括列清單,則更新列清單中的列時觸發器被激活。否則更形表中任何列時觸發器被激活,一個表可以有多個UPDATE觸發器。但是列清單要相互排斥。
      ENABLED指定啓動觸發器,即執行觸發器事件時即激活觸發器。這是生成觸發器時的默認值。
      DISABLED指定生成但關閉觸發器,即執行觸發器事件時不激活觸發器。
發佈了23 篇原創文章 · 獲贊 1 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章