新聞中心
day06 MySQL數(shù)據(jù)庫提升篇-----觸發(fā)器
創(chuàng)新互聯(lián)建站專注于福海企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。福海網(wǎng)站建設(shè)公司,為福海等地區(qū)提供建站服務(wù)。全流程定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
一、觸發(fā)器概述:
觸發(fā)器是什么?能有什么作用?能給我們帶來什么樣的操作數(shù)據(jù)庫的方法這都在這里學(xué)一一的告訴大家。觸發(fā)器原理類似于扳機(jī)的原理,當(dāng)你一點(diǎn)擊觸發(fā)的時(shí)候就會(huì)產(chǎn)生相應(yīng)的后續(xù)動(dòng)作。下面就具體的創(chuàng)建和使用一下觸發(fā)器。
二、觸發(fā)器(trigger):
1、創(chuàng)建觸發(fā)器
create trigger 觸發(fā)器名 before | after 觸發(fā)事件 on 表名 for each row begin 執(zhí)行語句; end; 譯: before | after:表示觸發(fā)器執(zhí)行的時(shí)間,前者是表示觸發(fā)前執(zhí)行, 后者是表示觸發(fā)時(shí)間之后執(zhí)行 觸發(fā)事件:觸發(fā)事件代表“insert”、“update”、“delete”三種操作 表名:指定的觸發(fā)時(shí)間操作的表的名稱 for each row :表示任何一條記錄上的操作滿足觸發(fā)器事件都會(huì)觸發(fā)該觸發(fā)器 begin ... end:表示開始到結(jié)束標(biāo)簽。 執(zhí)行語句:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序。
實(shí)例一:
創(chuàng)建一個(gè)響應(yīng)delete操作的觸發(fā)器 create trigger dlt after delete on student for echo row begin delete username from student; end; 譯: 創(chuàng)建的觸發(fā)器名:dlt 觸發(fā)器執(zhí)行時(shí)間:after 事件名:刪除操作(delete) 表名:student 執(zhí)行語句:從begin.....end之間的刪除語句。
2、創(chuàng)建多個(gè)執(zhí)行語句的觸發(fā)器
create trigger 觸發(fā)器名 before | after 觸發(fā)事件 on 表名 for each row begin 執(zhí)行語句1; 執(zhí)行語句2; 執(zhí)行語句3; end; 譯: before | after:表示觸發(fā)器執(zhí)行的時(shí)間,前者是表示觸發(fā)前執(zhí)行, 后者是表示觸發(fā)時(shí)間之后執(zhí)行 觸發(fā)事件:觸發(fā)事件代表“insert”、“update”、“delete”三種操作 表名:指定的觸發(fā)時(shí)間操作的表的名稱 for each row :表示任何一條記錄上的操作滿足觸發(fā)器事件都會(huì)觸發(fā)該觸發(fā)器 begin ... end:表示開始到結(jié)束標(biāo)簽。 執(zhí)行語句1:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序1。 執(zhí)行語句2:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序2。 執(zhí)行語句3:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序3。
實(shí)例二:
創(chuàng)建一個(gè)響應(yīng)delete操作的多個(gè)觸發(fā)器 create trigger dlt after delete on student for echo row begin insert into timelog(savetime) values(new()); insert into timeinfo(info) values('deleteact'); end; 譯: 創(chuàng)建的觸發(fā)器名:dlt 觸發(fā)器執(zhí)行時(shí)間:after 事件名:刪除操作(delete) 表名:student 執(zhí)行語句體:從begin.....end之間的刪除語句。
3、查看觸發(fā)器
show trigger;
3.1、查看trigger表中觸發(fā)器信息
select * from infomation_schema.trigger; 譯: infomation_schema:是MySQL中默認(rèn)存在的數(shù)據(jù)庫,用于記錄觸發(fā)器信息的數(shù)據(jù)表
3.2、方法二查看
select * from infomation_schema.trigger where trigger_name='觸發(fā)器名稱';
4、應(yīng)用觸發(fā)器
觸發(fā)器的應(yīng)用就是在你創(chuàng)建成功以后,單獨(dú)的向表中執(zhí)行相應(yīng)的sql語句操作。通過查詢?nèi)タ纯茨銏?zhí)行的sql語句是否成功。查看timeinfo數(shù)據(jù)表的插入情況好而被首先執(zhí)行的順序。
5、刪除觸發(fā)器
drop trigger 觸發(fā)器名稱;
三、結(jié)束語:
學(xué)到這里,我們的觸發(fā)器就學(xué)完了,我們可以利用觸發(fā)器進(jìn)行數(shù)據(jù)的備份效果,當(dāng)你刪除某一條數(shù)據(jù)的時(shí)候,我將這條數(shù)據(jù)新建存儲(chǔ)到另外的一張表中。這些都可以通過觸發(fā)器實(shí)現(xiàn)的。想很好的操作觸發(fā)器就不斷的去實(shí)驗(yàn)和運(yùn)用。
本文標(biāo)題:MySQL數(shù)據(jù)庫提升篇-----觸發(fā)器
地址分享:http://www.ef60e0e.cn/article/jhgeej.html