SHOW TRIGGERS
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW TRIGGERS
列出目前為資料庫中的資料表定義的觸發程序 (除非給定 FROM
子句,否則為預設資料庫)。此陳述式僅針對您具有 TRIGGER
權限的資料庫和資料表傳回結果。如果存在 LIKE
子句,則表示要比對的資料表名稱 (而非觸發程序名稱),並導致此陳述式顯示這些資料表的觸發程序。WHERE
子句可用於使用更一般的條件來選擇列,如 第 28.8 節「擴充 SHOW 陳述式」中所述。
對於 第 27.3 節「使用觸發程序」中定義的 ins_sum
觸發程序,SHOW TRIGGERS
的輸出如下所示
mysql> SHOW TRIGGERS LIKE 'acc%'\G
*************************** 1. row ***************************
Trigger: ins_sum
Event: INSERT
Table: account
Statement: SET @sum = @sum + NEW.amount
Timing: BEFORE
Created: 2018-08-08 10:10:12.61
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_ENGINE_SUBSTITUTION
Definer: me@localhost
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
Database Collation: utf8mb4_0900_ai_ci
SHOW TRIGGERS
輸出具有以下這些欄位
Trigger
觸發程序的名稱。
Event
觸發程序事件。這是觸發程序啟動時,關聯資料表上的作業類型。值為
INSERT
(插入一列)、DELETE
(刪除一列) 或UPDATE
(修改一列)。Table
定義觸發程序的資料表。
Statement
觸發程序主體;也就是觸發程序啟動時執行的陳述式。
Timing
觸發程序是在觸發事件之前還是之後啟動。值為
BEFORE
或AFTER
。Created
觸發程序的建立日期和時間。對於觸發程序,這是一個
TIMESTAMP(2)
值(秒的小數部分以百分之一秒為單位)。sql_mode
建立觸發程序時生效的 SQL 模式,以及觸發程序在其下執行的模式。如需允許的值,請參閱 第 7.1.11 節「伺服器 SQL 模式」。
Definer
建立觸發程序的使用者帳戶,格式為
'
。user_name
'@'host_name
'character_set_client
建立觸發程序時,
character_set_client
系統變數的階段作業值。collation_connection
建立觸發程序時,
collation_connection
系統變數的階段作業值。Database Collation
與觸發程序關聯的資料庫的定序。
觸發程序資訊也可以從 INFORMATION_SCHEMA
TRIGGERS
資料表取得。請參閱 第 28.3.44 節「INFORMATION_SCHEMA TRIGGERS 資料表」。