Oracle數據庫中有關觸發器問題

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章