一、簡介:
觸發器是與表直接關聯的特殊儲存過程,與表的關係密切,用於保護表中的資料。當有操作影響到觸發器保護的資料時,觸發器將自動執行。
二、觸發器的三種型別:
1、dml觸發器:當資料庫中發生dml事件時(insert,select,update,delete),將呼叫觸發器。
2、替代觸發器:也稱檢視觸發器,當檢視發生dml事件時,將呼叫觸發器。
3、系統觸發器:當資料庫發生ddl事件(啟動或關閉資料庫,create,alter,drop)時,將呼叫觸發器。
三、使用觸發器:
1、dml觸發器
//1、建立乙個表
create
table
tablename(
id number
);//
2、建立insert的dml觸發器
create
orreplace
trigger
trigname
after
insert
ontablename for each row
declare
strchar(100):=
'test';
begin
dbms_output.put_line(
str);
end;//3
、此時向tablename表中插入一條資料,控制台會列印test
insert
into tablename values(1001);
2、替代(檢視)觸發器
//1、建立乙個檢視
create
view
viewname
asselect
*from
tablename//2
、建立insert的檢視觸發器
create
trigger
trigname
instead
ofinsert
on tablename for
each row
declare
strchar(100):=
'test';
begin
dbms_output.put_line(
str);
end;//3
、此時向viewname檢視中插入一條資料,控制台會列印test
insert
into viewname values(1001);
3、系統觸發器
//1、建立乙個表
create
table
tablename(
id number
);//
2、建立系統觸發器,當使用者刪除資料庫物件(表、檢視)前,控制台列印test
create
orreplace
trigger
trigname
before
drop
on system.schema
declare
strchar(100):=
'test';
begin
dbms_output.put_line(
str);
end;//3
、此時刪除tablename表,控制台會列印test
drop
table tablename;
四、啟用和禁用觸發器:
//1、啟用trigname觸發器
alter
trigger
trigname enable;//2
、禁用trigname觸發器
alter
trigger
trigname disable;//3
、啟用tablename表中所有的觸發器
alter
table
enable all
triggers;//4
、禁用tablename表中所有的觸發器
alter
table
disable all
triggers;//5
、刪除trigname觸發器
drop
trigger trigname;
ORACLE觸發器 行級觸發器
行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...
Oracle資料庫 4 觸發器
資料庫觸發器時儲存於資料庫的命令 pl sql 語句塊,當觸發器發生時它們會隱含執行。執行觸發器的活動被稱為觸發觸發器。觸發事件的中類 處理資料庫表的 dml 語句 insert update,delete ddl 語句 如 create alter 系統事件 如資料庫啟動或關閉。使用者事件,如登入...
Oracle觸發器介紹 行級觸發器
行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸 髮器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例一 個簡...