溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MariaDB中觸發(fā)器的使用方法

發(fā)布時(shí)間:2021-06-30 15:26:37 來(lái)源:億速云 閱讀:282 作者:chen 欄目:大數(shù)據(jù)

本篇內(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í)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI