在DB2數據庫操作中,我們常常會使用到觸發器,這對於我們初學者來說似乎有一點點的難度。不過沒關系,本文我們就介紹了一些DB2數據庫觸發器方面的一些知識,並給出了一個創建觸發器的實例,對於初學者來說,如果您不太懂,也可以直接套用下面的實例來完成觸發器的創建。接下來就讓我們一起來了解一下這部分內容。
建一個觸發器,應包含以下部分:
觸發器名字:……
觸發器觸發事件:insert,delete,update
激活時間:before,after
粒度:for each statement,for each row
過渡變量:
old row:表示觸發事件之前被修改的值:
new row表示觸發事件之後被修改的值
old table表示觸發事件之前全部被修改行的一個只讀假想表
new table表示觸發事件之後全部被修改行的一個假想表
觸發條件:由WHEN開始,可包含一個或多個謂詞,可包含過渡變量和子查詢。
觸發體:由一個或多個SQL語句組成。
創建DB2觸發器的一個實例:
- CREATE TRIGGER REORDER
- AFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTS
- REFERENCING NEW AS N_ROW
- FOR EACH ROW MODE DB2SQL
- WHEN (N_ROW.ON_HAND < 0.10 * N_ROW.MAX_STOCKED
- AND N_ROW.ORDER_PENDING = 'N')
- BEGIN ATOMIC
- VALUES(ISSUE_SHIP_REQUEST(N_ROW.MAX_STOCKED -
- N_ROW.ON_HAND,
- N_ROW.PARTNO));
- UPDATE PARTS SET PARTS.ORDER_PENDING = 'Y'
- WHERE PARTS.PARTNO = N_ROW.PARTNO;
- END