您好,登錄后才能下訂單哦!
本篇內容主要講解“MariaDB中觸發器的使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MariaDB中觸發器的使用方法”吧!
觸發器(Trigger)是由事件來觸發某個操作,這些事情包括INSERT 語句‘UPDATE語句和DELETE語句。當數據庫執行這些事件時就會激活觸發器來執行響應的操作。
1、在MariaDB 中創建只有一個執行語句的觸發器的基本形式為:
CREATE TRIGGER 觸發器名 BEFORE|AFTER 觸發事件 ON 表名 FOR EACH ROW 執行語句
其中,觸發器名參數指要創建的觸發器的名字:BEFORE和AFTER參數指定了觸發器執行的時間,BEFORE指在觸發器事件之前執行觸發語句,AFTER表示在觸發器事件之后執行觸發器語句。觸發事件包括:INSERT、UPDATE、DELETE ,表名參數指的是觸發器事件發生的表的名稱,FOR EACH ROW 表示任何一條記錄上的操作滿足觸發事件都會觸發該觸發器,執行語句參數是指觸發器被觸發后執行的程序。
例如下列代碼:
CREATE TRIGGER login_trigger AFTER INSERT ON login FOR EACH ROW INSERT INTO trigger_psd VALUES(NOW());
2、創建有多個執行語句的觸發器
觸發器執行的語句可能有多個,創建有多個執行語句的觸發器的基本形式為:
CREATE TRIGGER 觸發器名 BEFORE|AFTER 觸發事件 ON 表名 FOR EACH ROW BEGIN 執行語句列表 END
其中:BEGIN與END之間的“執行語句列表”參數表示需要執行的多個執行語句的內容,不同的執行語句之間使用分號隔開。
例如:
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)中一個表在相同觸發時間的相同觸發事件只能創建一個觸發器。例如在department表中,觸發事件INSERT,觸發時間為AFTEER的觸發器只能有一個。但是可以定義觸發事件為BEFORE 的觸發器。如果該表中國執行INSERT語句,那么這個觸發器就會自動執行。
3、查看觸發器
在MariaDB 中可以使用SHOW TRIGGERS 語句來查看觸發器的基本信息,其基本形式如下:
SHOW TRRIGERS;
4、在triggers表中查看觸發器的信息
在MariaDB中所有的觸發器都定義在information_shema數據庫下的triggers表中。查詢triggers表可以看到數據庫中所有的觸發器信息,代碼如下:
SELECT * FROM information_schema.triggers;
查詢特定名稱的觸發器代碼為:
SELECT * FROM information_schema.triggers where TRIGGER_NAME='觸發器名';
5、刪除觸發器
刪除已經存在數據庫中的觸發器代碼形式如下:
DROP TRIGGER 觸發器名;
例如:
DROP TRIGGER dept_trig1;
到此,相信大家對“MariaDB中觸發器的使用方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。