十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
day06 MySQL數(shù)據(jù)庫提升篇-----觸發(fā)器
一、觸發(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)用。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。