1.語句觸發器的語法如下:
create [or replace] trigger trigger_name
timing event1 [or event2 or event3]
on table_name
pl/sql block;
如上所示,timing用於指定觸發時機(before或after):event用於觸發事件(insert、update和delete)
當在觸發器中同時包含多個觸發事件(insert,update,delete)時,為了在觸發器**中區分具體的觸發事件,可以使用以下三個條件謂詞:
inserting:當觸發事件是insert操作時,該條件謂詞返回值為true,否則為false.
updating:當觸發事件是upate操作時,該條件謂詞返回值為true,否則為false.
deleting:當觸發事件是delete操作時,該條件謂詞返回值為true,否則為false.
2.行觸發器
行觸發器是指執行dml操作時,每作用一行就觸發一次的觸發器。行觸發器的語法如下:
create or repalce trigger trigger_name
timing event1 [or event2 or event3]
on table_name
[referencing old as old| new as new]
for each row
[when condition]
pl/sql block;
如上所示,referencing子句用於指定新、舊資料的方式,預設情況下使用old修飾符引用舊資料,使用new修飾符引用新資料
for each row表示建立行觸發器,when子句(可選)用於指定觸發條件。
3.建立instead of觸發器
在複雜檢視上執行dml操作,必須要基於檢視建立instead-0f觸發器。
建立instead-of觸發器有以下注意事項:
(1) instead of 選項只適用於檢視;
(2)在建立檢視時沒有指定with check option選項
(3)當建立instead of 觸發器時,必須指定for each row選項。
檢視是邏輯表,本身沒有任何資料。檢視只是對應於一條select語句,當查詢檢視時,其資料實際是從檢視基表上取得。
grant create view to 使用者名稱
2614.建立系統事件觸發器
第8章 觸發器
重點一 觸發器 1.定義 觸發器是在對錶或檢視進行插入 更新或刪除操作是自動執行的儲存過程,有事務的特徵,可以跨表操作。2.分類 1 after觸發器 只能定義在表上 insert觸發器 update觸發器 delete觸發器 2 insert of觸發器 可以定義在表和檢視上 3.語法 creat...
第12章 觸發器
12.1 建立觸發器 12.1.1建立只有乙個執行語句的觸發器 建立乙個 觸發器的語法如下 create trigger trigger name trigger time trigger event on tb1 name for each row rtigger stmt trigger nam...
PLSQL 除錯觸發器
在plsql裡是可以除錯觸發器的,相信有一部分人可能不清楚這個。以前我一直使用sql server,哈哈,養成了乙個根深蒂固的觀念,以為oracle裡觸發器也是不能除錯的,其實sqlserver裡面也是可以除錯的 寫這個的時候特意 在網上查詢了下資料 好了,為了形象說明,下面列舉個例子,如下圖所示,...