您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“MariaDB中觸發(fā)器的使用方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“MariaDB中觸發(fā)器的使用方法”吧!
觸發(fā)器(Trigger)是由事件來(lái)觸發(fā)某個(gè)操作,這些事情包括INSERT 語(yǔ)句‘UPDATE語(yǔ)句和DELETE語(yǔ)句。當(dāng)數(shù)據(jù)庫(kù)執(zhí)行這些事件時(shí)就會(huì)激活觸發(fā)器來(lái)執(zhí)行響應(yīng)的操作。
1、在MariaDB 中創(chuàng)建只有一個(gè)執(zhí)行語(yǔ)句的觸發(fā)器的基本形式為:
CREATE TRIGGER 觸發(fā)器名 BEFORE|AFTER 觸發(fā)事件 ON 表名 FOR EACH ROW 執(zhí)行語(yǔ)句
其中,觸發(fā)器名參數(shù)指要?jiǎng)?chuàng)建的觸發(fā)器的名字:BEFORE和AFTER參數(shù)指定了觸發(fā)器執(zhí)行的時(shí)間,BEFORE指在觸發(fā)器事件之前執(zhí)行觸發(fā)語(yǔ)句,AFTER表示在觸發(fā)器事件之后執(zhí)行觸發(fā)器語(yǔ)句。觸發(fā)事件包括:INSERT、UPDATE、DELETE ,表名參數(shù)指的是觸發(fā)器事件發(fā)生的表的名稱(chēng),F(xiàn)OR EACH ROW 表示任何一條記錄上的操作滿(mǎn)足觸發(fā)事件都會(huì)觸發(fā)該觸發(fā)器,執(zhí)行語(yǔ)句參數(shù)是指觸發(fā)器被觸發(fā)后執(zhí)行的程序。
例如下列代碼:
CREATE TRIGGER login_trigger AFTER INSERT ON login FOR EACH ROW INSERT INTO trigger_psd VALUES(NOW());
2、創(chuàng)建有多個(gè)執(zhí)行語(yǔ)句的觸發(fā)器
觸發(fā)器執(zhí)行的語(yǔ)句可能有多個(gè),創(chuàng)建有多個(gè)執(zhí)行語(yǔ)句的觸發(fā)器的基本形式為:
CREATE TRIGGER 觸發(fā)器名 BEFORE|AFTER 觸發(fā)事件 ON 表名 FOR EACH ROW BEGIN 執(zhí)行語(yǔ)句列表 END
其中:BEGIN與END之間的“執(zhí)行語(yǔ)句列表”參數(shù)表示需要執(zhí)行的多個(gè)執(zhí)行語(yǔ)句的內(nèi)容,不同的執(zhí)行語(yǔ)句之間使用分號(hào)隔開(kāi)。
例如:
DELIMITER && CREATE TRIGGER dept_trig2 AFTRE DELETE ON department FOR EACH ROW BEGIN INSERT INTO trigger_time values("21:01:01"); INSERT INTO trigger_time values("22:01:01"); END && DELIMITER
注意:在MySQL(MariaDB)中一個(gè)表在相同觸發(fā)時(shí)間的相同觸發(fā)事件只能創(chuàng)建一個(gè)觸發(fā)器。例如在department表中,觸發(fā)事件INSERT,觸發(fā)時(shí)間為AFTEER的觸發(fā)器只能有一個(gè)。但是可以定義觸發(fā)事件為BEFORE 的觸發(fā)器。如果該表中國(guó)執(zhí)行INSERT語(yǔ)句,那么這個(gè)觸發(fā)器就會(huì)自動(dòng)執(zhí)行。
3、查看觸發(fā)器
在MariaDB 中可以使用SHOW TRIGGERS 語(yǔ)句來(lái)查看觸發(fā)器的基本信息,其基本形式如下:
SHOW TRRIGERS;
4、在triggers表中查看觸發(fā)器的信息
在MariaDB中所有的觸發(fā)器都定義在information_shema數(shù)據(jù)庫(kù)下的triggers表中。查詢(xún)triggers表可以看到數(shù)據(jù)庫(kù)中所有的觸發(fā)器信息,代碼如下:
SELECT * FROM information_schema.triggers;
查詢(xún)特定名稱(chēng)的觸發(fā)器代碼為:
SELECT * FROM information_schema.triggers where TRIGGER_NAME='觸發(fā)器名';
5、刪除觸發(fā)器
刪除已經(jīng)存在數(shù)據(jù)庫(kù)中的觸發(fā)器代碼形式如下:
DROP TRIGGER 觸發(fā)器名;
例如:
DROP TRIGGER dept_trig1;
到此,相信大家對(duì)“MariaDB中觸發(fā)器的使用方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。