Oracle中的觸發器,Oracle觸發器

來源:互聯網
上載者:User

Oracle中的觸發器,Oracle觸發器
Oracle中的觸發器

觸發器是一種特殊的額預存程序,它在發生某種資料庫時間時由Oracle系統自動觸發。觸發器通常用於加強資料庫的完整性條件約束和商務規則等,對於表來說,觸發器可以實現比CHECK約束更為複雜的約束。
Oracle中的觸發器的類型主要有DML觸發器、替代觸發器、系統事件觸發器和DDL觸發器。

觸發器的分類
  • DML觸發器
    DML觸發器由DML語句觸發,例如INSERT、UPDATE和DELETE語句。
    針對所有的DML事件,按照觸發器的時間可以將DML觸發器分為BEFORE觸發器和AFTER觸發器,分別表示在DML事件發生之前與之後採取行動。
    另外,DML觸發器也可以分為語句級觸發器和行級觸發器,語句級觸發器針對某一條語句觸發一次,而行級觸發器針對語句所影響的每一行都觸發一次。
  • INSTEAD OF觸發器
    INSTEAD OF觸發器(替代觸發器),用於執行一個替代操作來代替觸發事件的操作,例如針對INSERT事件的INSTEAD OF觸發器,它由INSERT語句觸發,當出現INSERT語句時,該語句不會被執行,而是執行INSTEAD OF觸發器中定義的語句。
    • 系統事件觸發器
      系統事件觸發器在發生如資料庫啟動或關閉等系統事件時觸發。
    • DDL觸發器
      DDL觸發器由DDL語句觸發,如CREATE、ALTER和DROP語句。DDL觸發器同樣分為BEFORE觸發器與AFTER觸發器。
觸發器的建立

建立觸發器需要使用CREATE TRIGGER語句,其文法如下:

CREATE [OR REPLACE] TRIGGER trigger_name[BEFORE|AFTER|INSTEAD OF] trigger_event{ON table_name|view_name|DATABASE}[FOR EACH ROW][ENABLE|DISABLE][WHEN trigger_condition][DECLARE declaration_statements;]BEGIN    trigger_body;END [trigger_name]; 

相關文章

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.