Oracle觸發器


觸發器的定義就是說某個條件成立的時候,觸發器裡面所定義的語句就會被自動的執行。

因此觸發器不需要人為的去呼叫,也不能呼叫。觸發器的觸發條件其實在定義的時候就已經設定好了。這裡面需要說明一下,觸發器可以分為語句級觸發器和行級觸發器。

觸發器的基礎知識和範例:

詳細的介紹可以參考網上的資料,簡單的說就是語句級的觸發器可以在某些語句執行前或執行後被觸發。而行級觸發器則是在定義的了觸發的表中的行資料改變時就會被觸發一次。

具體舉例:

1、 在一個表中定義的語句級的觸發器,當這個表被刪除時,程式就會自動執行觸發器裡面定義的操作過程。這個就是刪除表的操作就是觸發器執行的條件了。
2、 在一個表中定義了行級的觸發器,那當這個表中一行資料發生變化的時候,比如刪除了一行記錄,那觸發器也會被自動執行了。

觸發器語法

觸發器的語法:

create [or replace] tigger 觸發器名 觸發時間 觸發事件
on 表名
[for each row]
begin
 pl/sql語句
end

其中:

觸發器名:觸發器物件的名稱。由於觸發器是資料庫自動執行的,因此該名稱只是一個名稱,沒有實質的用途。
觸發時間:指明觸發器何時執行,該值可取:
before:表示在資料庫動作之前觸發器執行;
after:表示在資料庫動作之後觸發器執行。
觸發事件:指明哪些資料庫動作會觸發此觸發器:
insert:資料庫插入會觸發此觸發器;
update:資料庫修改會觸發此觸發器;
delete:資料庫刪除會觸發此觸發器。
表名:資料庫觸發器所在的表。
for each row:對表的每一行觸發器執行一次。如果沒有這一選項,則只對整個表執行一次。

觸發器能實現如下功能:

功能:

1、 允許/限制對表的修改
2、 自動生成派生列,比如自增欄位
3、 強制資料一致性
4、 提供審計和紀錄檔記錄
5、 防止無效的事務處理
6、 啟用複雜的業務邏輯