新聞中心
MySQL觸發(fā)器使用CREATE TRIGGER語句,下面就對(duì)建立MySQL觸發(fā)器的語句語法進(jìn)行詳細(xì)的介紹,希望對(duì)您學(xué)習(xí)MySQL觸發(fā)器有所幫助。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括惠山網(wǎng)站建設(shè)、惠山網(wǎng)站制作、惠山網(wǎng)頁制作以及惠山網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,惠山網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到惠山省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
CREATE TRIGGER(建立MySQL觸發(fā)器)語法
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
觸發(fā)程序是與表有關(guān)的命名數(shù)據(jù)庫對(duì)象,當(dāng)表上出現(xiàn)特定事件時(shí),將激活該對(duì)象。
觸發(fā)程序與命名為tbl_name的表相關(guān)。tbl_name必須引用***性表。不能將觸發(fā)程序與TEMPORARY表或視圖關(guān)聯(lián)起來。
trigger_time是觸發(fā)程序的動(dòng)作時(shí)間。它可以是BEFORE或AFTER,以指明觸發(fā)程序是在激活它的語句之前或之后觸發(fā)。
trigger_event指明了激活觸發(fā)程序的語句的類型。trigger_event可以是下述值之一:
· INSERT:將新行插入表時(shí)激活觸發(fā)程序,例如,通過INSERT、LOAD DATA和REPLACE語句。
· UPDATE:更改某一行時(shí)激活觸發(fā)程序,例如,通過UPDATE語句。
· DELETE:從表中刪除某一行時(shí)激活觸發(fā)程序,例如,通過DELETE和REPLACE語句。
請(qǐng)注意,trigger_event與以表操作方式激活觸發(fā)程序的SQL語句并不很類似,這點(diǎn)很重要。例如,關(guān)于INSERT的BEFORE觸發(fā)程序不僅能被INSERT語句激活,也能被LOAD DATA語句激活。
可能會(huì)造成混淆的例子之一是INSERT INTO .. ON DUPLICATE UPDATE ...語法:BEFORE INSERT觸發(fā)程序?qū)τ诿恳恍袑⒓せ睿蟾鶤FTER INSERT觸發(fā)程序,或BEFORE UPDATE和AFTER UPDATE觸發(fā)程序,具體情況取決于行上是否有重復(fù)鍵。
對(duì)于具有相同觸發(fā)程序動(dòng)作時(shí)間和事件的給定表,不能有兩個(gè)觸發(fā)程序。例如,對(duì)于某一表,不能有兩個(gè)BEFORE UPDATE觸發(fā)程序。但可以有1個(gè)BEFORE UPDATE觸發(fā)程序和1個(gè)BEFORE INSERT觸發(fā)程序,或1個(gè)BEFORE UPDATE觸發(fā)程序和1個(gè)AFTER UPDATE觸發(fā)程序。
trigger_stmt是當(dāng)觸發(fā)程序激活時(shí)執(zhí)行的語句。如果你打算執(zhí)行多個(gè)語句,可使用BEGIN ... END復(fù)合語句結(jié)構(gòu)。這樣,就能使用存儲(chǔ)子程序中允許的相同語句。
以上就是建立MySQL觸發(fā)器的語法介紹。
【編輯推薦】
mysql觸發(fā)器的三個(gè)示例
mysql建主從服務(wù)器的實(shí)現(xiàn)方法
獲取當(dāng)前時(shí)間的MySql時(shí)間函數(shù)
Mysql聚合函數(shù)簡介
MySQL concat函數(shù)的使用
網(wǎng)站名稱:建立MySQL觸發(fā)器的語法
本文路徑:http://www.dlmjj.cn/article/djgdoid.html


咨詢
建站咨詢
