這篇文章主要介紹“MySQL查詢觸發(fā)器的語句是什么”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql查詢觸發(fā)器的語句是什么”文章能幫助大家解決問題。
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元青島做網(wǎng)站,已為上家服務(wù),為青島各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
mysql查詢觸發(fā)器的語句有兩個:1、“SHOW TRIGGERS [FROM 數(shù)據(jù)庫名];”語句,可查看當(dāng)前數(shù)據(jù)庫或指定數(shù)據(jù)庫觸發(fā)器的基本信息。2、“SELECT * FROM information_schema.triggers WHERE trigger_name= '觸發(fā)器名';”語句,用于查看特定觸發(fā)器的信息,可獲取觸發(fā)器的內(nèi)容及其元數(shù)據(jù),例如關(guān)聯(lián)的表名和定義器。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
查看觸發(fā)器是指查看數(shù)據(jù)庫中已經(jīng)存在的觸發(fā)器的定義、狀態(tài)和語法信息等。
MySQL 中查看觸發(fā)器的方法有兩種:
SHOW TRIGGERS 語句
查詢 information_schema 數(shù)據(jù)庫下的 triggers 數(shù)據(jù)表等
1、SHOW TRIGGERS語句查看觸發(fā)器信息
在 MySQL 中,可以通過 SHOW TRIGGERS 語句來查看觸發(fā)器的基本信息,語法格式如下:
SHOW TRIGGERS [FROM 數(shù)據(jù)庫名];
FROM 數(shù)據(jù)庫名
:是可選語句,如果要查看當(dāng)前數(shù)據(jù)庫中的所有觸發(fā)器就省略;如果要獲取特定數(shù)據(jù)庫中的所有觸發(fā)器,就不省略,并指定數(shù)據(jù)庫名稱。
示例 1
首先創(chuàng)建一個數(shù)據(jù)表 account,表中有兩個字段,分別是 INT 類型的 accnum 和 DECIMAL 類型的 amount。SQL 語句和運行結(jié)果如下:
mysql> CREATE TABLE account( -> accnum INT(4), -> amount DECIMAL(10,2)); Query OK, 0 rows affected (0.49 sec)
創(chuàng)建一個名為 trigupdate 的觸發(fā)器,每次 account 表更新數(shù)據(jù)之后都向 myevent 數(shù)據(jù)表中插入一條數(shù)據(jù)。創(chuàng)建數(shù)據(jù)表 myevent 的 SQL 語句和運行結(jié)果如下:
mysql> CREATE TABLE myevent( -> id INT(11) DEFAULT NULL, -> evtname CHAR(20) DEFAULT NULL); Query OK, 0 rows affected (0.26 sec)
創(chuàng)建 trigupdate 觸發(fā)器的 SQL 代碼如下:
mysql> CREATE TRIGGER trigupdate AFTER UPDATE ON account -> FOR EACH ROW INSERT INTO myevent VALUES(1,'after update'); Query OK, 0 rows affected (0.15 sec)
使用 SHOW TRIGGERS 語句查看觸發(fā)器(在 SHOW TRIGGERS 命令后添加\G,這樣顯示信息會比較有條理),SQL 語句和運行結(jié)果如下:
mysql> SHOW TRIGGERS \G
由運行結(jié)果可以看到觸發(fā)器的基本信息。對以上顯示信息的說明如下:
Trigger 表示觸發(fā)器的名稱,在這里觸發(fā)器的名稱為 trigupdate;
Event 表示激活觸發(fā)器的事件,這里的觸發(fā)事件為更新操作 UPDATE;
Table 表示激活觸發(fā)器的操作對象表,這里為 account 表;
Statement 表示觸發(fā)器執(zhí)行的操作,這里是向 myevent 數(shù)據(jù)表中插入一條數(shù)據(jù);
Timing 表示觸發(fā)器觸發(fā)的時間,這里為更新操作之后(AFTER);
還有一些其他信息,比如觸發(fā)器的創(chuàng)建時間、SQL 的模式、觸發(fā)器的定義賬戶和字符集等,這里不再一一介紹。
SHOW TRIGGERS 語句用來查看當(dāng)前創(chuàng)建的所有觸發(fā)器的信息。因為該語句無法查詢指定的觸發(fā)器,所以在觸發(fā)器較少的情況下,使用該語句會很方便。如果要查看特定觸發(fā)器的信息或者數(shù)據(jù)庫中觸發(fā)器較多時,可以直接從 information_schema 數(shù)據(jù)庫中的 triggers 數(shù)據(jù)表中查找。
2、在triggers表中查看觸發(fā)器信息
在 MySQL 中,所有觸發(fā)器的信息都存在 information_schema 數(shù)據(jù)庫的 triggers 表中,可以通過查詢命令 SELECT 來查看,具體的語法如下:
SELECT * FROM information_schema.triggers WHERE trigger_name= '觸發(fā)器名';
其中,'觸發(fā)器名'用來指定要查看的觸發(fā)器的名稱,需要用單引號引起來。這種方式可以查詢指定的觸發(fā)器,使用起來更加方便、靈活。
這種方式允許您查看觸發(fā)器的內(nèi)容及其元數(shù)據(jù),例如關(guān)聯(lián)的表名和定義器,這是創(chuàng)建觸發(fā)器的MySQL用戶的名稱。
示例 2
下面使用 SELECT 命令查看 trigupdate 觸發(fā)器,SQL 語句如下:
SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME= 'trigupdate'\G
上述命令通過 WHERE 來指定需要查看的觸發(fā)器的名稱,運行結(jié)果如下:
mysql> SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME= 'trigupdate'\G
由運行結(jié)果可以看到觸發(fā)器的詳細信息。對以上顯示信息的說明如下:
TRIGGER_SCHEMA 表示觸發(fā)器所在的數(shù)據(jù)庫;
TRIGGER_NAME 表示觸發(fā)器的名稱;
EVENT_OBJECT_TABLE 表示在哪個數(shù)據(jù)表上觸發(fā);
ACTION_STATEMENT 表示觸發(fā)器觸發(fā)的時候執(zhí)行的具體操作;
ACTION_ORIENTATION 的值為 ROW,表示在每條記錄上都觸發(fā);
ACTION_TIMING 表示觸發(fā)的時刻是 AFTER;
還有一些其他信息,比如觸發(fā)器的創(chuàng)建時間、SQL 的模式、觸發(fā)器的定義賬戶和字符集等,這里不再一一介紹。
上述 SQL 語句也可以不指定觸發(fā)器名稱,這樣將查看所有的觸發(fā)器,SQL 語句如下:
SELECT * FROM information_schema.triggers \G
這個語句會顯示 triggers 數(shù)據(jù)表中所有的觸發(fā)器信息。
關(guān)于“mysql查詢觸發(fā)器的語句是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
網(wǎng)站標(biāo)題:mysql查詢觸發(fā)器的語句是什么
當(dāng)前URL:http://aaarwkj.com/article20/jpodco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、ChatGPT、網(wǎng)站設(shè)計、軟件開發(fā)、域名注冊、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)