1.概述
觸發器是特殊的儲存過程。儲存過程是由使用者主動去呼叫執行,觸發器是資料庫在發生一些事件的時候主動呼叫。
常見的觸發器(sql server)有instead of 和 after(for)
資料庫為觸發器特別的建立兩張表 inserted表、deleted表
這兩張表由資料庫維護,存在記憶體中,它的字段與要操作的表一致。當觸發器執行完之後,這兩張表也會被銷毀。
2、觸發器過程
3.實現語法
create trigger 名字 on 操作表
for|after or instead of
update|insert|delete
assql語句
例子(sql server)
插入學生資訊到學生表。inserted of觸發器 查詢inserted表
create trigger test_trigger on student
instead of insert as
select * from inserted
goinsert student(sno,sname,***,age,dno) values('20000010','李四','男','20','0001')
goselect * from student where sno='20000010'
資料並沒有插入到student表。inserted表是要插入的內容。
刪除學生資訊時觸發器更改學生的年齡並查詢deleted表
create trigger sd
on student
instead of delete as
begin
update student set age=age+1 where sno=(select sno from deleted)
select * from deleted
endgo
delete student where sno='20000013'
select * from student where sno='20000013'
資料並沒有被刪除而是年齡加1
刪除觸發器
drop trigger 觸發器名字
4.總結
觸發器是事件(update、deleted、inserte)發生的時候自動執行。inserted表、deleted表相當於儲存中間的值,可以像一般表一樣查詢。
觸發器可以禁止刪除、插入、更新,也可以完成刪除、插入、更新之後的操作。
資料庫之觸發器
觸發器 看到這個名字總是會想到數電中學過的觸發器,有輸入端和輸出端,根據電平的高低來觸發。資料庫中的觸發器是個特殊的儲存過程,主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名稱而被直接呼叫。作用 使用t sql語句進行複雜的邏輯處理,基於乙個表建立,但是可以對多個表進行操作,因此常常用...
資料庫之觸發器
觸發器 看到這個名字總是會想到數電中學過的觸發器,有輸入端和輸出端,根據電平的高低來觸發。資料庫中的觸發器是個特殊的儲存過程,主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名稱而被直接呼叫。作用 使用t sql語句進行複雜的邏輯處理,基於乙個表建立,但是可以對多個表進行操作,因此常常用...
資料庫之觸發器
本篇介紹mysql中的觸發器,部分內容是筆者摘抄自 資料庫系統概念 僅當作筆記。觸發器 trigger 是一條語句,當對資料庫做修改時,它自動被系統執行。要設定觸發器機制,必須滿足兩個要求 指明什麼條件下執行觸發器。它被分解為乙個引起觸發器被檢測的事件和乙個觸發器執行必須滿足的條件 指明觸發器執行時...