注:本文參考
常見的觸發器有三種:分別應用於insert,update,delete事件。
如有兩張表:a表和b表,建立觸發器使當a表插入資料後b表也同步插入資料。其中b表插入資料的字段需要同a表中的字段相對應。
1例項測試:create
trigger
觸發器名稱2on
a表3 after insert4as
5begin
insert
into
b表(b表字段1,b表字段2,b表字段3)
6select
a表字段1,a表字段2,a表字段3
7from
inserted
8end
實現若info_stu有新的資料插入,則將資料的name提取出,同步到info_borrow表
1測試效果如下:create
trigger
tricopy_stu2borrow2on
info_stu
3 after insert4as
5begin
insert
into
info_borrow(name)
6select name from
info_stu
7end
如有兩張表:a表和b表,建立觸發器使當a表刪除資料後b表也能同步刪除資料。其中b表與a表應有相應主鍵關聯。
1例項測試:create
trigger
觸發器名稱2on
a表3 after delete4as
begin
deleteb表5
where b表主鍵 in(select a表主鍵 from
deleted)
6end
刪除info_stu中的一條記錄時,刪除info_borrow中相同的記錄
1測試效果如下:create
trigger
tridelete_stu2borrow2on
info_stu
3 after delete4as
begin
delete
info_borrow
5where name in (select name from
deleted)
6end
如有兩張表:a表和b表,建立觸發器使當a表資料更新後b表也同步更新資料。
1測試效果如下:create
trigger
觸發器名稱2on
a表3 after update
4as begin
5updateb表6
set7 b.b表字段1=
i.欄位1
8from
9 b表 b, deleted d,inserted i
10where b.b表字段=d.欄位
注:資料更新的操作涉及到了臨時表的建立:
理解觸發器裡面的兩個臨時的表:deleted,inserted。注意deleted與inserted分別表示觸發事件的表「舊的一條記錄」和「新的一條記錄」。
乙個資料庫系統中有兩個虛擬表用於儲存在表中記錄改動的資訊,分別是:
虛擬表inserted
虛擬表deleted
在表記錄新增時
存放新增的記錄
不儲存記錄
修改時存放用來更新的新紀錄
存放更新前的記錄
刪除時不儲存記錄
存放被刪除的記錄
觸發器及觸發器的作用
觸發器是一種用來保障參照完整性的特殊的儲存過程,它維護不同表中資料間關係的有關規則。當對指定的表進行某種特定操作 如 insert,delete或update 時,觸發器產生作用。觸發器可以呼叫儲存過程。建立觸發器的語法 create trigger owner.觸發器名 on owner.表名 f...
orcale 觸發器實現級聯刪除
請在資料庫中新增兩個觸發器 1 刪除表staff userinfo中的使用者時,同時刪除staff userrole中使用者對應的角色 2 刪除表staff role中的角色時,同時刪除staff rolemodule中角色對應的模組。錯誤 1.create or replace trigger d...
實現刪除指定節點及所有子結點的處理觸發器
create table tb id int,pid int,name nvarchar 10 insert tb select1,null,山東省 union allselect2,1,煙台市 union allselect4,2,招遠市 union allselect3,1,青島市 union ...