版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 20801.5-2025壓力管道規(guī)范第5部分:氫用管道
- 2025年高職船舶工程技術(shù)(船舶舾裝工藝)試題及答案
- 2025年大學(xué)護(hù)理學(xué)(急危重癥監(jiān)護(hù))試題及答案
- 2025年中職區(qū)塊鏈技術(shù)(區(qū)塊鏈基礎(chǔ)原理)試題及答案
- 2025-2026年五年級(jí)科學(xué)(專項(xiàng)突破)下學(xué)期期中測(cè)試卷
- 八年級(jí)化學(xué)(化學(xué)方程式)2026年上學(xué)期期中測(cè)試卷
- 2025年大學(xué)服裝與服飾設(shè)計(jì)(服裝設(shè)計(jì))試題及答案
- 大學(xué)(經(jīng)濟(jì)學(xué))國(guó)際經(jīng)濟(jì)學(xué)基礎(chǔ)2026年階段測(cè)試題及答案
- 2025年中職環(huán)境監(jiān)測(cè)技術(shù)(大氣監(jiān)測(cè))試題及答案
- 2025年高職(鐵道工程技術(shù))鐵道線路施工試題及答案
- 雨課堂學(xué)堂在線學(xué)堂云《芊禮-謙循-送給十八歲女大學(xué)生的成人之禮(中華女子學(xué)院 )》單元測(cè)試考核答案
- 智慧農(nóng)貿(mào)市場(chǎng)建設(shè)項(xiàng)目報(bào)告與背景分析
- 護(hù)理部競(jìng)選副主任
- 【10篇】新版部編六年級(jí)上冊(cè)語文課內(nèi)外閱讀理解專項(xiàng)練習(xí)題及答案
- 2026年中國(guó)經(jīng)濟(jì)展望:風(fēng)鵬正舉
- 老年健康服務(wù)中的多學(xué)科團(tuán)隊(duì)協(xié)作
- 上市公司部門組織架構(gòu)及崗位職責(zé)大全
- 公司紡粘針刺非織造布制作工合規(guī)化技術(shù)規(guī)程
- 雨課堂學(xué)堂云在線《人工智能原理》單元測(cè)試考核答案
- 蘇州中醫(yī)院護(hù)理試題題庫及答案解析
- 撞人出院協(xié)議書
評(píng)論
0/150
提交評(píng)論