《MySQL數(shù)據(jù)庫(kù)應(yīng)用與管理(第3版)》 課件 魯大林 第9章 觸發(fā)器_第1頁(yè)
《MySQL數(shù)據(jù)庫(kù)應(yīng)用與管理(第3版)》 課件 魯大林 第9章 觸發(fā)器_第2頁(yè)
《MySQL數(shù)據(jù)庫(kù)應(yīng)用與管理(第3版)》 課件 魯大林 第9章 觸發(fā)器_第3頁(yè)
《MySQL數(shù)據(jù)庫(kù)應(yīng)用與管理(第3版)》 課件 魯大林 第9章 觸發(fā)器_第4頁(yè)
《MySQL數(shù)據(jù)庫(kù)應(yīng)用與管理(第3版)》 課件 魯大林 第9章 觸發(fā)器_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

觸發(fā)器

觸發(fā)器概述

觸發(fā)器概述觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,且不同于一般的存儲(chǔ)過(guò)程。觸發(fā)器主要是通過(guò)事件進(jìn)行觸發(fā)而被執(zhí)行,而一般的存儲(chǔ)過(guò)程則是通過(guò)存儲(chǔ)過(guò)程名稱(chēng)被直接調(diào)用。觸發(fā)器是一個(gè)功能強(qiáng)大的工具,與表緊密連接,可以看作是表結(jié)構(gòu)定義的一部分。觸發(fā)器基于一個(gè)表創(chuàng)建,但可以操作多個(gè)表。它可以在向數(shù)據(jù)表中插入、修改或刪除數(shù)據(jù)時(shí)進(jìn)行檢查,以保證數(shù)據(jù)完整性和一致性。當(dāng)用戶修改(INSERT、UPDATE或DELETE)指定表中的數(shù)據(jù)時(shí),該表中的相應(yīng)的觸發(fā)器就會(huì)自動(dòng)執(zhí)行。謝謝觸發(fā)器

創(chuàng)建觸發(fā)器

本節(jié)內(nèi)容1.使用CREATETRIGGER語(yǔ)句創(chuàng)建觸發(fā)器2.觸發(fā)器中的NEW和OLD關(guān)鍵字3.創(chuàng)建插入觸發(fā)器4.創(chuàng)建更新觸發(fā)器5.創(chuàng)建刪除觸發(fā)器創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器使用CREATETRIGGER語(yǔ)句,其語(yǔ)法格式如下:

CREATETRIGGER<觸發(fā)器名> BEFORE|AFTER INSERT|UPDATE|DELETE ON<表>FOREACHROW <觸發(fā)器過(guò)程體>1.使用CREATETRIGGER語(yǔ)句創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器說(shuō)明:BEFORE|AFTER:觸發(fā)器觸發(fā)的時(shí)機(jī)。INSERT|UPDATE|DELETE:觸發(fā)器觸發(fā)的事件。FOREACHROW:對(duì)于觸發(fā)事件影響的每一行,都要激活觸發(fā)器動(dòng)作。觸發(fā)器過(guò)程體:事件發(fā)生,觸發(fā)器需要執(zhí)行的任務(wù)。同一張表、同一觸發(fā)事件、同一觸發(fā)時(shí)機(jī)只能創(chuàng)建一個(gè)觸發(fā)器。觸發(fā)器執(zhí)行的順序BEFORE觸發(fā)器、表操作(INSERT、UPDATE、DELETE)和AFTER觸發(fā)器。1.使用CREATETRIGGER語(yǔ)句創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器MySQL的觸發(fā)器無(wú)任何輸入和輸出參數(shù),其內(nèi)部使用的參數(shù)就是新舊兩條記錄NEW和OLD的字段,用來(lái)完成數(shù)據(jù)表之間的觸發(fā)操作,來(lái)保證數(shù)據(jù)庫(kù)的一致性、完整性。NEW表示的新插入的數(shù)據(jù),OLD表示的是原來(lái)的數(shù)據(jù):當(dāng)使用INSERT語(yǔ)句的時(shí)候,插入的那一條數(shù)據(jù)相對(duì)于插入數(shù)據(jù)后的表來(lái)說(shuō)就是NEW。當(dāng)使用DELETE語(yǔ)句的時(shí)候,刪除的那一條數(shù)據(jù)相對(duì)于刪除數(shù)據(jù)后的表來(lái)說(shuō)就是OLD。當(dāng)使用UPDATE語(yǔ)句的時(shí)候,修改前的那一條數(shù)據(jù)相對(duì)于修改數(shù)據(jù)后的表來(lái)說(shuō)就是OLD;修改后的那一條數(shù)據(jù)相對(duì)于修改數(shù)據(jù)后的表來(lái)說(shuō)就是NEW。2.觸發(fā)器中的NEW和OLD關(guān)鍵字創(chuàng)建觸發(fā)器在觸發(fā)器BEFORE中可以在對(duì)NEW進(jìn)行賦值和取值;而在AFTER中只能對(duì)NEW進(jìn)行取值,不能賦值。訪問(wèn)觸發(fā)器中NEW和OLD的語(yǔ)法格式如下: NEW.column_name OLD.column_name2.觸發(fā)器中的NEW和OLD關(guān)鍵字創(chuàng)建觸發(fā)器創(chuàng)建插入觸發(fā)器使用INSERT關(guān)鍵字,即當(dāng)指定的數(shù)據(jù)表發(fā)生數(shù)據(jù)插入操作時(shí),自動(dòng)觸發(fā)并執(zhí)行指定的任務(wù);可設(shè)置在插入前觸發(fā)、還是在插入后觸發(fā),分別使用BEFORE或者AFTER關(guān)鍵字。3.創(chuàng)建插入觸發(fā)器操作案例知識(shí)點(diǎn)概述示例9-1運(yùn)行結(jié)果如下:創(chuàng)建一個(gè)由INSERT觸發(fā)的前觸發(fā)器tr_insertStudent,一旦在學(xué)生表(student)中插入一行數(shù)據(jù)之前,檢查性別是否為“男”或者“女”,如果不是,則設(shè)置為“男”。操作案例知識(shí)點(diǎn)概述示例9-2運(yùn)行結(jié)果如下:向?qū)W生表(student)中插入一條學(xué)生記錄,驗(yàn)證示例9-1中的觸發(fā)器tr_insertStudent。創(chuàng)建觸發(fā)器創(chuàng)建更新觸發(fā)器使用UPDATE關(guān)鍵字,即當(dāng)指定的數(shù)據(jù)表發(fā)生數(shù)據(jù)更新操作時(shí),自動(dòng)觸發(fā)并執(zhí)行指定的任務(wù);可設(shè)置在更新前觸發(fā)、還是在更新后觸發(fā),分別使用BEFORE或者AFTER關(guān)鍵字。4.創(chuàng)建更新觸發(fā)器操作案例知識(shí)點(diǎn)概述示例9-3運(yùn)行結(jié)果如下:創(chuàng)建一個(gè)由UPDATE觸發(fā)的后觸發(fā)器tr_updateStuScore,一旦在成績(jī)表(score)中修改了某一學(xué)生的某一課程的成績(jī)之后,把修改時(shí)間、學(xué)號(hào)、課程編號(hào)、修改前成績(jī)、修改后成績(jī)保存到數(shù)據(jù)表trigger_log中。操作案例知識(shí)點(diǎn)概述示例9-4運(yùn)行結(jié)果如下:修改成績(jī)表(score)中的一條學(xué)生的課程成績(jī),驗(yàn)證示例9-3中的觸發(fā)器tr_updateStuScore。創(chuàng)建觸發(fā)器創(chuàng)建刪除觸發(fā)器使用DELETE關(guān)鍵字,即當(dāng)指定的數(shù)據(jù)表發(fā)生數(shù)據(jù)刪除操作時(shí),自動(dòng)觸發(fā)并執(zhí)行指定的任務(wù);可設(shè)置在刪除前觸發(fā)、還是在刪除后觸發(fā),分別使用BEFORE或者AFTER關(guān)鍵字。5.創(chuàng)建刪除觸發(fā)器操作案例知識(shí)點(diǎn)概述示例9-5運(yùn)行結(jié)果如下:創(chuàng)建一個(gè)由DELETE觸發(fā)的前觸發(fā)器tr_deleteStudent,一旦在學(xué)生表(student)中刪除一行數(shù)據(jù)之前,刪除該學(xué)生的所有成績(jī)記錄。操作案例知識(shí)點(diǎn)概述示例9-6運(yùn)行結(jié)果如下:刪除學(xué)生表(student)中的一條學(xué)生記錄,驗(yàn)證示例9-5中的觸發(fā)器tr_deleteStudent。謝謝觸發(fā)器

修改觸發(fā)器

修改觸發(fā)器MySQL中沒(méi)有類(lèi)似ALTERTRIGGER語(yǔ)句,因此,我們不能象修改其他數(shù)據(jù)庫(kù)對(duì)象,例如表、視圖和存儲(chǔ)過(guò)程那樣修改觸發(fā)器。如果要修改觸發(fā)器,可以先刪除原觸發(fā)器,再以相同的名稱(chēng)、并使用新的代碼重新創(chuàng)建。謝謝觸發(fā)器

刪除觸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論