Oracle資料庫中有關觸發器問題

來源:互聯網
上載者:User

Oracle觸發器是一種特殊類型的預存程序,它不同於預存程序。觸發器主要是通過事件進行觸發而被執行的,觸發器的觸發事件分可為3類,分別是DML事件、DDL事件和資料庫事件,而預存程序可以通過預存程序名字而被直接調用。當對某一表進行諸如UPDATE、 INSERT、 DELETE 這些操作時,SQL Server 就會自動執行觸發器所定義的SQL 陳述式,從而確保對資料的處理必須符合由這些SQL 陳述式所定義的規則。

  觸發器是特定事件出現的時候,自動執行的代碼塊。類似於預存程序,但是使用者不能直接調用他們。

  觸發器功能

  1、 允許/限制對錶的修改

  2、 自動產生衍生的資料行,比如自增欄位

  3、 強制資料一致性

  4、 提供審計和日誌記錄

  5、 防止無效的交易處理

  6、 啟用複雜的商務邏輯

  觸發器種類

  觸發器的種類可劃分為4種:1.資料操縱語言(DML)觸發器、2.替代(INSTEAD OF)觸發器、3.資料定義語言 (Data Definition Language)(DDL)觸發器、4.資料庫事件觸發程序。

  資料操縱語言(DML)觸發器:簡稱DML觸發器,是定義在表上的觸發器,建立在表上。由DML事件引發的觸發器,編寫DML觸發器時的兩點要素是: 1.確定觸發的表,即在其上定義觸發器的表。2.確定觸發的事件,DML觸發器的觸發事件有INSERT、UPDATE和DELETE三種; 替代觸發器,簡稱INSTEAD OF觸發器,建立在視圖上,用來替換對視圖進行的刪除、插入和修改操作; 資料定義語言 (Data Definition Language)(DDL)觸發器,簡稱DDL觸發器,定義在模式上,觸發事件是資料對象的建立和修改; 資料庫事件觸發程序,定義在整個資料庫或模式上,觸發事件是資料庫事件.

  ORACLE產生資料庫觸發器的文法為:

以下是程式碼片段:
    CREATE [OR REPLACE] TRIGGER 觸發器名
  {BEFORE|AFTER|INSTEAD OF} 觸發事件1 [OR 觸發事件2...]
  ON 表名
  WHEN 觸發條件
  [FOR EACH ROW]
  DECLARE
  聲明部分
  BEGIN
  主體部分
  END;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.