SHOW TRIGGERS
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW TRIGGERS
列出目前為資料庫中的資料表定義的觸發程序(除非給定 FROM
子句,否則為預設資料庫)。此陳述式僅針對您具有 TRIGGER
權限的資料庫和資料表傳回結果。如果存在 LIKE
子句,則表示要比對的資料表名稱(非觸發程序名稱),並導致陳述式顯示這些資料表的觸發程序。WHERE
子句可以用於使用更通用的條件選擇列,如 第 28.8 節 「SHOW 陳述式的擴充」中所述。
對於 第 27.4 節 「使用觸發程序」中定義的 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
輸出具有以下欄位
觸發程序
觸發程序的名稱。
事件
觸發程序事件。這是觸發程序啟動的關聯資料表上的操作類型。值為
INSERT
(已插入列)、DELETE
(已刪除列)或UPDATE
(已修改列)。資料表
定義觸發程序的資料表。
陳述式
觸發程序主體;也就是說,觸發程序啟動時執行的陳述式。
時序
觸發程序是在觸發事件之前還是之後啟動。值為
BEFORE
或AFTER
。已建立
建立觸發程序的日期和時間。對於觸發程序,這是一個
TIMESTAMP(2)
值(以百分之一秒為單位的分數部分)。sql_mode
建立觸發程序時生效,以及觸發程序在其下執行的 SQL 模式。有關允許的值,請參閱 第 7.1.11 節 「伺服器 SQL 模式」。
定義者
建立觸發程序的使用者帳戶,格式為
'
。user_name
'@'host_name
'character_set_client
建立觸發程序時,
character_set_client
系統變數的工作階段值。collation_connection
建立觸發程序時,
collation_connection
系統變數的工作階段值。資料庫定序
與觸發程序關聯的資料庫定序。
觸發程序資訊也可以從 INFORMATION_SCHEMA
TRIGGERS
資料表取得。請參閱 第 28.3.44 節 「INFORMATION_SCHEMA TRIGGERS 資料表」。