Oracle數據庫中有關觸發器問題
觸發器是一種特殊類型的存儲過程,它不同於存儲過程。觸發器主要是通過事件進行觸發而被執行的,觸發器的觸發事件分可爲3類,分別是DML事件、DDL事件和數據庫事件,而存儲過程可以通過存儲過程名字而被直接調用。當對某一表進行諸如UPDATE、 INSERT、 DELETE 這些操作時,SQL Server 就會自動執行觸發器所定義的SQL 語句,從而確保對數據的處理必須符合由這些SQL 語句所定義的規則。
觸發器是特定事件出現的時候,自動執行的代碼塊。類似於存儲過程,但是用戶不能直接調用他們。
觸發器功能
1、 允許/限制對錶的修改
2、 自動生成派生列,比如自增字段
3、 強制數據一致性
4、 提供審計和日誌記錄
5、 防止無效的事務處理
6、 啓用複雜的業務邏輯
觸發器種類
觸發器的種類可劃分爲4種:1.數據操縱語言(DML)觸發器、2.替代(INSTEAD OF)觸發器、3.數據定義語言(DDL)觸發器、4.數據庫事件觸發器。
數據操縱語言(DML)觸發器:簡稱DML觸發器,是定義在表上的觸發器,創建在表上。由DML事件引發的觸發器,編寫DML觸發器時的兩點要素是: 1.確定觸發的表,即在其上定義觸發器的表。2.確定觸發的事件,DML觸發器的觸發事件有INSERT、UPDATE和DELETE三種; 替代觸發器,簡稱INSTEAD OF觸發器,創建在視圖上,用來替換對視圖進行的刪除、插入和修改操作; 數據定義語言(DDL)觸發器,簡稱DDL觸發器,定義在模式上,觸發事件是數據對象的創建和修改; 數據庫事件觸發器,定義在整個數據庫或模式上,觸發事件是數據庫事件.
ORACLE產生數據庫觸發器的語法爲:
以下是代碼片段:
CREATE [OR REPLACE] TRIGGER 觸發器名
{BEFORE|AFTER|INSTEAD OF} 觸發事件1 [OR 觸發事件2...]
ON 表名
WHEN 觸發條件
[FOR EACH ROW]
DECLARE
聲明部分
BEGIN
主體部分
END;
詳情請點擊: http://www.yuandingsoft.com/index.php?m=content&c=index&a=show&catid=262&id=4486