《數(shù)據(jù)庫與信息系統(tǒng)》SQL語言-7觸發(fā)器_第1頁
《數(shù)據(jù)庫與信息系統(tǒng)》SQL語言-7觸發(fā)器_第2頁
《數(shù)據(jù)庫與信息系統(tǒng)》SQL語言-7觸發(fā)器_第3頁
《數(shù)據(jù)庫與信息系統(tǒng)》SQL語言-7觸發(fā)器_第4頁
《數(shù)據(jù)庫與信息系統(tǒng)》SQL語言-7觸發(fā)器_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、SQL與可編程對象4觸發(fā)器為什么需要觸發(fā)器?觸發(fā)器一般用來監(jiān)視數(shù)據(jù)庫,以便及時進行一些數(shù)據(jù)維護工作。例如:實現(xiàn)比數(shù)據(jù)完整性約束更為復雜的其他限制;級聯(lián)修改數(shù)據(jù)庫中相關的表數(shù)據(jù);及時取消不合適的更新操作,防止惡意或錯誤地使用數(shù)據(jù)庫。例子:當某個學生選了某一門課程之后,需要對數(shù)據(jù)庫中的數(shù)據(jù)進行以下修改:選課表中插入一條記錄將選擇該課程的選課人數(shù)增加1選課人數(shù)的更新能不能自動完成呢?數(shù)據(jù)庫中的部分關系模式:學生(學號,姓名,)選課(學號,課程號,成績)課程(課程號,課程名,選課人數(shù),)觸發(fā)器的定義觸發(fā)器是一種特殊的存儲過程。當對數(shù)據(jù)庫進行更新操作時被觸發(fā)自動執(zhí)行。不需要顯式調用!InsertUpda

2、teDelete更新操作設置觸發(fā)器需要指明以下兩方面內容:什么條件下觸發(fā)?觸發(fā)后執(zhí)行時的動作觸發(fā)器的分類建在表上,執(zhí)行更新數(shù)據(jù)操作時觸發(fā)。視圖和臨時表都不支持觸發(fā)器。按觸發(fā)時刻分兩類:InsertUpdateDelete觸發(fā)器AFTER觸發(fā)器: 在表中數(shù)據(jù)修改之后觸發(fā),默認類型。BEFORE觸發(fā)器:在表中數(shù)據(jù)修改以前觸發(fā)。使用 SQL語句創(chuàng)建觸發(fā)器CREATE TRIGGER 觸發(fā)器名BEFORE|AFTER INSERT|UPDATE|DELETEON 表名 FOR EACH ROWSQL語句段;觸發(fā)事件觸發(fā)時間觸發(fā)范圍:行級觸發(fā)觸發(fā)后執(zhí)行的語句需要建立觸發(fā)器的表CREATE TRIGGER

3、 tri_courseenrollAFTER INSERT ON courseenrollFOR EACH ROWUPDATE course SET StudentNum = StudentNum +1 WHERE CourseCode=new.CourseCode;例如:在courseenroll表上建立觸發(fā)器,當添加新的選課記錄時,自動修改course表中的選課人數(shù)。例子:當某個學生選了某一門課程之后選課表中插入一條記錄將選擇該課程的選課人數(shù)增加1觸發(fā)器的臨時表:old 表和 new 表觸發(fā)器工作時自動創(chuàng)建和管理的兩個臨時表,用于記錄數(shù)據(jù)變動情況。更新操作new表old表Insert存新增的記錄-Delete-存被刪的記錄Update存修改后的記錄存修改前的記錄某列的值用“new.列名”和“old.列名”表示使用圖形工具創(chuàng)建觸發(fā)器例如:在student表上創(chuàng)建一個觸發(fā)器tri_deletestudent,當刪除一條學生記錄時,將該學生在courseenroll表中的選課記錄全部刪除。觸發(fā)器名稱觸發(fā)時間觸發(fā)事件執(zhí)行的動作維護觸發(fā)器修改名稱觸發(fā)時間觸發(fā)事件執(zhí)行動作( SQL代碼)觸發(fā)器的定義觸發(fā)器是一種特殊的存儲過程。當對數(shù)據(jù)庫進行更新操作時被觸發(fā)自動執(zhí)行。不需要顯式調用!InsertUpd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論