觸發器類似與儲存過程,都是為了實現特殊功能而執行的**塊。
觸發器不允許使用者顯示傳遞引數,不能夠返回引數值,不允許使用者呼叫觸發器。
觸發器只是在oracle合適的時間自動呼叫,非常類似於面向程式設計中的***。
觸發器按照觸發事件型別、物件不同分為:語句觸發器,行觸發器,instead of觸發器,系統事件觸發器,使用者觸發器
前三者:針對一般資料表有insert、update、delet、dml操作,後2者為系統事件,drop、alter、ddl操作
dml-
dml(data manipulation language)資料操縱語言命令使使用者能夠查詢資料庫以及操作已有資料庫中的資料
ddl(data definition language),是用於描述資料庫中要儲存的現實世界實體的語言。
create trigger [trigger_name] for insert,update,delete --trigger_name為觸發器名稱,在執行什麼動作時候觸發
on [dbo].[table]--對應的表
assql_statement
例項
create or replace trigger tri_name1 --建立乙個觸發器名稱
before insert --在執行什麼操作時候觸發
on table1 --對應的表
for each row --行級觸發器
begin --執行**塊
if inserting then
update hglims.contract set status=:new.statusid where contractid=:new.contractid; --在插入的時候去修改hglims.contract表中的status、contractid資料(hglims為乙個使用者名稱)
end if;
end;
oracle中的觸發器共有哪幾類?
語句觸發器、行觸發器、instead of觸發器、系統事件觸發器和使用者事件觸發器。
語句觸發器和行級觸發器的區別是什麼?
語句觸發器:針對一次dml操作,無論影響到表多少條記錄,只觸發一次。
行級觸發器:針對dml操作影響到的所有記錄,均會觸發一次。
簡述instead of觸發器的主要特點
instead of觸發器,則完全代替了dml操作,也就是說,執行觸發器動作,而本來的dml操作不會執行
列舉兩個觸發器應用場景
對於檢視的更新操作可以利用instead of觸發器進行,從而自定義如何更新源資料表。
1. 資訊彙總
當明細資料更新時,可以利用觸發器實現彙總資料的更新。
2. 資料備份
當資料更新時,可以利用觸發器將原資料記錄到歷史資料表中,從而實現資料跟蹤。
什麼是使用者事件觸發器?
使用者事件觸發器建立時不再針對單個資料庫物件,而是建立在使用者或使用者的模式之上。
Oracle觸發器簡介
oracle觸發器型別 1 語句觸發器 對乙個sql語句執行一次,分為before和after 例項 create trigger name before insert or update or delete 也可以是after of column name 可選,限定列名 on tablename...
Oracle建立觸發器
首先要講一下觸發器的概念 觸發器是由於dml語句的執行引發的一種特殊的資料庫物件。所以呢他的型別就要insert,instead of update,delete 三種觸發器。基本用法如下面所示 建立刪除觸發器 create or replace trigger tri delete after d...
oracle建立觸發器
工作需要,需要建立乙個觸發器,判斷表中的id是否為空,如果為空的時候需要用觸發器加上id,如果沒有觸發觸發器加上id,如果有則不觸發觸發器。建立乙個序列,每次加乙個 create sequence 序列名稱 increment by 1 每次加乙個 建立乙個觸發器 create or replace...