數據庫觸發器是一個與表相關聯的、存儲的PL/SQL程序。每當一個特定的數據操作語句(insert,update,delete)在指定的表上發出時,Oracle自動的執行觸發器中定義的語句序列。
1.觸發器的作用
(1)數據確認
(2)實施複雜的安全性檢查
(3)做審計,跟蹤表上所做的數據操作等
(4)數據的備份和同步
2.觸發器的類型
(1)語句級觸發器
在指定的操作語句操作之前或之後執行一次,不管這條語句影響了多少行。
(2)行級觸發器
觸發語句作用的每一條記錄都被觸發。在行級觸發器中使用old和new僞記錄變量,識別值的狀態。
3.觸發器的語法
4.案例
【例1】插入員工後打印一句話“一個新員工插入成功”
5.觸發器的實際應用
需求:使用序列、觸發器來模擬mysql中自增效果
(1)建表、創建序列
(2)創建自增的觸發器
分析:創建一個基於該表的 before insert 觸發器,在觸發器中使用剛創建的SEQUENCE。
代碼如下:
create or replace trigger user_trgger
before insert on user
for each row
begin
select user_seq.nextval into:new.id from sys.dual;
end;
(3)測試效果
insert into itcastuser(name) values("aa");
commit;
insert into itcastuser(name) value('bb');
commit;