SHOW TRIGGERS ステートメントは、データベース内のテーブルに定義されたトリガーを表示します。
SHOW TRIGGERS ステートメントの構文は次のとおりです:
SHOW TRIGGERS
[{FROM | IN} database_name]
[LIKE 'pattern' | WHERE expr]
FROM 句はデータベースを指定するために使用されます。指定されていない場合はデフォルトのデータベースが使用されます。SHOW TRIGGERS ステートメントは、TRIGGER 権限を持つデータベースとテーブルの結果のみを返します。
LIKE 句(存在する場合)は、マッチするテーブル名(トリガー名ではありません)を指定し、これらのテーブルのトリガーを表示します。WHERE 句で指定された条件を使用して行を選択できます。
SHOW TRIGGERS ステートメントの出力には、次の情報が含まれます:
Trigger:トリガー名。Event:トリガーイベント。これは、トリガーが有効化される際に関連するテーブル上で実行される操作タイプです。この値はINSERT(行が挿入された)、DELETE(行が削除された)、またはUPDATE(行が変更された)のいずれかです。Table:トリガーを定義したテーブル。Statement:トリガーが有効化されたときに実行されるステートメント。Timing:トリガーがトリガーイベントの前に有効化されるか後に有効化されるか。この値はBEFOREまたはAFTERのいずれかです。Created:トリガーが作成された日付と時刻。値の型はTIMESTAMP(2)(小数部は100分の1秒)です。sql_mode:トリガーを作成したときに有効なSQLモード。Definer:トリガーを作成したユーザーアカウント。形式は'user_name'@'host_name'です。character_set_client:トリガーを作成したときのcharacter_set_clientシステム変数の現在のセッションの値。collation_connection:トリガーを作成したときのcollation_connectionシステム変数の現在のセッションの値。Database Collation:トリガーに関連付けられたデータベースの照合順序。
トリガー情報は、INFORMATION_SCHEMA TRIGGERS テーブルからも取得できます。詳細については、INFORMATION_SCHEMA TRIGGERS参照してください。
SHOW TRIGGER ステートメントの例は次のとおりです:
obclient> SHOW TRIGGERS LIKE 'test_trg%'\G
*************************** 1. row ***************************
Trigger: test_trg
Event: UPDATE
Table: test
Statement: TRIGGER test_trg BEFORE UPDATE ON test
FOR EACH ROW
BEGIN
IF NEW.user_num < 1 THEN
SET NEW.user_num = 1;
ELSEIF NEW.user_num > 45 THEN
SET NEW.user_num= 45;
END IF;
END
Timing: BEFORE
Created: 2022-05-18 18:07:51.994639
sql_mode: STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE
Definer: 'root'@'%'
character_set_client: utf8mb4
collation_connection: utf8mb4
Database Collation: utf8mb4