トリガーに関する情報を取得する
作成済のトリガーの一覧や、トリガーが作成された時の CREATE TRIGGER 文の情報などトリガーに関する情報を取得するには SHOW TRIGGERS 文または SHOW CREATE TRIGGER 文などを使用します。ここでは MySQL でトリガーに関する情報を取得する方法について解説します。
(Last modified: )
目次
作成済のトリガー一覧を確認する
現在作成されているトリガーの一覧を取得する方法です。 SHOW TRIGGERS 文を使います。書式は次の通りです。
SHOW TRIGGERS [FROM db_name] [LIKE 'pattern' | WHERE expr]
デフォルトデータベースに含まれるテーブル(およびビュー)の一覧を取得する場合は SHOW TRIGGERS と入力します。
show triggers\G
デフォルトデータベースに作成済みのトリガーの一覧が表示されます。トリガー毎にトリガー名( Trigger )、トリガーの対象となる操作( Event )、トリガーの対象となっているテーブル名( Table )、トリガーが起動したときに実行される SQL 文( Statement )、トリガーが起動するタイミング( Timing )などが確認できます。
また LIKE 句や WHER 句を使って取得するトリガーを絞り込むこともできます。 LIKE 句ではトリガーの対象となるテーブル名に対してパターンマッチングさせます。( LIKE 句については「パターンマッチングで比較」、 WHERE 句については「検索条件の設定」を参照されてください)。
show triggers like 's%'\G
show triggers where `Table`='saleslist'\G
それぞれ条件に一致したテーブルの一覧が表示されました。
作成したトリガーと同じトリガーを作成するためのCREATE TRIGGER文を確認する
次にトリガー名を指定して、そのトリガーを作成するのと同じトリガーを作成するための CREATE TRIGGER 文を表示する方法です。 SHOW CREATE TRIGGER 文を使います。書式は次の通りです。
SHOW CREATE TRIGGER trigger_name
それでは作成済みの insert_trigger トリガーについて確認してみます。
show create trigger insert_trigger\G
SQL Original Statement カラムの値として指定したトリガー名と同じトリガーを作成するための SQL 文が表示されます。
INFORMATION_SCHEMAデータベースのTRIGGERSテーブルを参照する
INFORMATION_SCHEMA データベースは MySQL に作成されているデータベースやテーブルなどの情報を参照するために利用できます。トリガーに関しては INFORMATION_SCHEMA データベースの中の TRIGGERS テーブルに格納されており、情報を参照するには次のように入力して下さい。
select * from INFORMATION_SCHEMA.TRIGGERS where TRIGGER_SCHEMA='mydb' and TRIGGER_NAME='insert_trigger'\G
指定したデータベースの中の指定したトリガーに関する情報が表示されました。
-- --
作成済のトリガーに関する情報の取得する手順について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。