2008-09-06 6 views

答えて

88

コマンドは次のとおりです。

show triggers 

か、によって直接INFORMATION_SCHEMAテーブルにアクセスすることができます:あなたは、バージョン5.0.10以降からこれを行うことができます

select trigger_schema, trigger_name, action_statement 
from information_schema.triggers 
  • さらに詳しい情報はTRIGGERS table is hereです。あなたは、次の試みることができる特定のスキーマで特定のトリガーを示す
+2

の上に、私は "SHOW TRIGGERS" クエリを使用しての代わりに、直接INFORMATION_SCHEMAへのアクセスに行くお勧めします - 「SHOW TRIGGERS」には依然として優れたパフォーマンスがありますが、サーバー上に1000を超えるデータベースがあれば後者は非常に遅くなります。 –

+0

第2の "複雑な"バージョンにお返事いただきました。ホストの1人が最初に動作しません(レシジョンは分かりません)。 – userlond

+1

'SHOW TRIGGERS'は、そのデータベースとテーブルに対して' TRIGGER'権限が必要です。特権を持たないユーザでMySQLにログインすると、 'SHOW TRIGGERS'を実行するとエラーを出すのではなく何も返しません。あなたが特権要件を認識していない場合、混乱する可能性があります。 –

8

select * from information_schema.triggers where 
information_schema.triggers.trigger_name like '%trigger_name%' and 
information_schema.triggers.trigger_schema like '%data_base_name%' 
10

あなたは、特定のトリガ定義を見つけるために、下記の使用することができます。

SHOW TRIGGERS LIKE '%trigger_name%'\G 

または以下では、データベース内のすべてのトリガーを表示します。これはMySQL 5.0以上で動作します。

SHOW TRIGGERS\G 
9

私は次のコードを参考にしてください。

select * from information_schema.triggers where 
information_schema.triggers.trigger_schema like '%your_db_name%' 

これはMySQLバージョンで22列の合計与える:5.5.27

TRIGGER_CATALOG 
TRIGGER_SCHEMA 
TRIGGER_NAME 
EVENT_MANIPULATION 
EVENT_OBJECT_CATALOG 
EVENT_OBJECT_SCHEMA 
EVENT_OBJECT_TABLE 
ACTION_ORDER 
ACTION_CONDITION 
ACTION_STATEMENT 
ACTION_ORIENTATION 
ACTION_TIMING 
ACTION_REFERENCE_OLD_TABLE 
ACTION_REFERENCE_NEW_TABLE 
ACTION_REFERENCE_OLD_ROW 
ACTION_REFERENCE_NEW_ROW 
CREATED 
SQL_MODE 
DEFINER 
CHARACTER_SET_CLIENT 
COLLATION_CONNECTION 
DATABASE_COLLATION 
+0

私はスキーマを扱うときに 'LIKE'を使わないでください。私は、クライアントが "company"という名前のデータベースと "company_project"という名前のデータベースを持っていたときにエラーが起こりやすい環境で作業しました。また、KEYWORDSを分かりやすくするためにINFORMATION_SCHEMAとその列を大文字にすることをお勧めします。それで、あなたは普通のDBを扱っていないことは明らかです。 – AndrewWhalan

関連する問題