數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.3 使用觸發(fā)器_第1頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.3 使用觸發(fā)器_第2頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.3 使用觸發(fā)器_第3頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.3 使用觸發(fā)器_第4頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.3 使用觸發(fā)器_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)庫原理與應(yīng)用快速入門6.1使用視圖6.2使用存儲(chǔ)過程6.3使用觸發(fā)器第6章

使用其他數(shù)據(jù)庫對(duì)象6.4使用MySQL系統(tǒng)函數(shù)6.3.1理解觸發(fā)器的概念6.3.2創(chuàng)建和激活觸發(fā)器6.3.3查看觸發(fā)器6.3使用觸發(fā)器6.3.4刪除觸發(fā)器6.3.1理解觸發(fā)器的概念觸發(fā)器是一種特殊類型的存儲(chǔ)過程,它不是由用戶通過命令來執(zhí)行的,而是在用戶對(duì)數(shù)據(jù)表執(zhí)行了插入、刪除或修改等操作時(shí)自動(dòng)激活執(zhí)行的。觸發(fā)器用于執(zhí)行一定的業(yè)務(wù)規(guī)則,保證數(shù)據(jù)完整性,也用于實(shí)現(xiàn)數(shù)據(jù)庫的某些管理任務(wù)和附加功能。觸發(fā)器通過特定事件激活而執(zhí)行,而存儲(chǔ)過程通過存儲(chǔ)過程名稱直接調(diào)用??梢哉f,存儲(chǔ)過程像遙控炸彈,我們可以根據(jù)需要控制它何時(shí)爆炸;而觸發(fā)器卻像地雷,一旦踩中就會(huì)爆炸。6.3.1理解觸發(fā)器的概念觸發(fā)器是一個(gè)功能強(qiáng)大的工具,主要優(yōu)點(diǎn)包括:1、觸發(fā)器自動(dòng)執(zhí)行。當(dāng)對(duì)表中的數(shù)據(jù)作了預(yù)定義的操作之后立即被激活執(zhí)行。2、觸發(fā)器可以針對(duì)多個(gè)表進(jìn)行操作,從而對(duì)相關(guān)表進(jìn)行級(jí)聯(lián)更改。3、觸發(fā)器可以實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)完整性約束,更適合在大型數(shù)據(jù)庫管理系統(tǒng)中用于保障數(shù)據(jù)的完整性。6.3.2創(chuàng)建和激活觸發(fā)器觸發(fā)器由CREATETRIGGER語句創(chuàng)建,其語法如下:CREATETRIGGERtrigger_nametrigger_timetrigger_eventONtable_nameFOREACHROWtrigger_statement;6.3.2創(chuàng)建和激活觸發(fā)器各部分的參數(shù)解釋如下:1、trigger_name:用于指定要?jiǎng)?chuàng)建的觸發(fā)器的名稱。2、trigger_time:表示觸發(fā)器觸發(fā)的時(shí)機(jī),可以指定為BEFORE或AFTER,即觸發(fā)程序是在激活它的語句之前或之后執(zhí)行。3、trigger_event:表示激活觸發(fā)器的語句類型,包括INSERT、UPDATE、DELETE。INSERT表示新的數(shù)據(jù)行插入表示激活觸發(fā)器。UPDATE表示表中的數(shù)據(jù)發(fā)生更改時(shí)激活觸發(fā)器。DELETE表示刪除表中的數(shù)據(jù)時(shí)激活觸發(fā)器。6.3.2創(chuàng)建和激活觸發(fā)器各部分的參數(shù)解釋如下:4、table_name:表示建立觸發(fā)器的表名。5、FOREACHROW:表示觸發(fā)器的執(zhí)行間隔,觸發(fā)器每隔一行執(zhí)行一次動(dòng)作,而不是對(duì)整個(gè)表執(zhí)行一次。6、trigger_statement:指定觸發(fā)器執(zhí)行的SQL語句,可以是一條語句,或者使用BEGIN...END包含的多條語句。6.3.2創(chuàng)建和激活觸發(fā)器MySQL中定義了OLD和NEW,用于表示觸發(fā)器所在的表,激活觸發(fā)器的那一行數(shù)據(jù)。當(dāng)執(zhí)行INSERT操作激活觸發(fā)器時(shí),NEW用來表示將要或已經(jīng)插入的新數(shù)據(jù)。當(dāng)執(zhí)行DELETE操作激活觸發(fā)器時(shí),OLD用來表示將要或已經(jīng)刪除的原數(shù)據(jù)。當(dāng)執(zhí)行UPDATE操作激活觸發(fā)器時(shí),OLD用來表示將要或已經(jīng)修改的原數(shù)據(jù),NEW用來表示將要或已經(jīng)修改的新數(shù)據(jù)。使用方法為:

NEW.colName或OLD.colName

其中,colName表示相應(yīng)數(shù)據(jù)表的某一列名。6.3.2創(chuàng)建和激活觸發(fā)器【例6-26】創(chuàng)建一個(gè)名為“del_stu”的觸發(fā)器,當(dāng)一名學(xué)生退學(xué)時(shí),將該學(xué)生的學(xué)號(hào)、姓名、班級(jí)和電話號(hào)碼存入delstudents表中。1、首先創(chuàng)建一張delstudents表:6.3.2創(chuàng)建和激活觸發(fā)器【例6-26】創(chuàng)建一個(gè)名為“del_stu”的觸發(fā)器,當(dāng)一名學(xué)生退學(xué)時(shí),將該學(xué)生的學(xué)號(hào)、姓名、班級(jí)和電話號(hào)碼存入delstudents表中。2、隨后創(chuàng)建觸發(fā)器del_stu:6.3.2創(chuàng)建和激活觸發(fā)器【例6-26】創(chuàng)建一個(gè)名為“del_stu”的觸發(fā)器,當(dāng)一名學(xué)生退學(xué)時(shí),將該學(xué)生的學(xué)號(hào)、姓名、班級(jí)和電話號(hào)碼存入delstudents表中。3、嘗試刪除學(xué)生表中的一條記錄:6.3.2創(chuàng)建和激活觸發(fā)器【例6-26】創(chuàng)建一個(gè)名為“del_stu”的觸發(fā)器,當(dāng)一名學(xué)生退學(xué)時(shí),將該學(xué)生的學(xué)號(hào)、姓名、班級(jí)和電話號(hào)碼存入delstudents表中。4、查詢delstudents表,驗(yàn)證刪除的學(xué)生記錄是否保存進(jìn)了delstudents表。6.3.2創(chuàng)建和激活觸發(fā)器【例6-27】創(chuàng)建一個(gè)名為“up_sc”的觸發(fā)器,當(dāng)students表里學(xué)生的學(xué)號(hào)發(fā)生更改時(shí),同時(shí)更改sc表中對(duì)應(yīng)的學(xué)生的學(xué)號(hào)。6.3.3查看觸發(fā)器如果要了解數(shù)據(jù)庫中已經(jīng)存在的觸發(fā)器的定義、狀態(tài)和語法信息等,可以使用SHOWTRIGGERS語句來查看,也可以通過系統(tǒng)數(shù)據(jù)庫information_schema中的triggers表來查詢。6.3.3查看觸發(fā)器1、使用SHOWTRIGGERS語句查看觸發(fā)器信息使用SHOWTRIGGERS語句查詢觸發(fā)器信息的語句如下:SHOWTRIGGERS;6.3.3查看觸發(fā)器2、通過系統(tǒng)數(shù)據(jù)庫information_schema中的triggers表查看觸發(fā)器信息MySQL中,所有觸發(fā)器的定義都保存在information_schema數(shù)據(jù)庫中的triggers表中??梢酝ㄟ^SELECT命令來查看,語法格式如下:SELECT*FROMinformation_schema.triggerswherecondition;其中,condition表示查詢條件。6.3.3查看觸發(fā)器【例6-28】通過SELECT命令查詢觸發(fā)器“del_stu”的信息。6.3.4刪除觸發(fā)器如果系統(tǒng)中的觸發(fā)器已經(jīng)不能滿足業(yè)務(wù)的需要,我們就可以刪除它。刪除觸發(fā)器使用DROP命令,其語法形式如下:

DROPTRIGGER[schema_name.]trigger_name;

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論