若想在資料異動時觸發某些動作就可以透過觸發程式達成此目的,Oracle觸發程序可分為以下三種類型。
- BEFORE TRIGGER:於資料被異動前會觸發。
- AFTER TRIGGER:於資料異動後會觸發。
- INSTEAD OF TRIGGER:於資料被異動前會觸發,並可取代原本的異動。
使用語法如下
|
|
Oracle觸發程式,可以同時定義多個觸發事件,上多個觸發事件使用同一支觸發程式,帶給開發者取多方便性,Oracle提供以下觸發條件使用語句供使用者於觸發程式內進行判斷。
- INSERTING:由 INSERT 觸發。
- UPDATING:由 UPDATE 觸發。
- UPDATING(‘欄位’):由 UPDATE 某特定欄位時觸發。
- DELETING:由 DELETE 觸發。
於資料異動前後,觸發程式提供NEW以及OLD可以讓開發者取得新舊值,不過先決條件是必須使用「FOR EACH ROW」進行列級別的觸發才行。
以下整理新舊值可以使用的狀態:
- INSERT:NEW
- UPDATE:NEW、OLD
- DELETE:OLD
以下進行相關範例
|
|
查看ARTICLE_LOG資料表內容
|
|