2008-09-06 9 views

Répondre

88

La commande est:

show triggers 

ou vous pouvez accéder à la table INFORMATION_SCHEMA directement par:

select trigger_schema, trigger_name, action_statement 
from information_schema.triggers 
  • Vous pouvez le faire à partir de la version 5.0.10 partir.
  • Plus d'informations sur le TRIGGERS table is here.
+2

Je vous conseille d'aller à l'aide de la "SHOW DÉCLENCHEURS" requête au lieu d'accéder directement information_schema - ce dernier sera très lent une fois que vous aurez plus de mille bases de données sur le serveur alors que "SHOW TRIGGERS" aura toujours une performance exceptionnelle. –

+0

Merci pour la deuxième version "compliquée". La première ne fonctionne pas (ne connaît pas la résion) sur l'un des hôtes ... – userlond

+1

Notez que 'SHOW TRIGGERS' nécessite que vous ayez le privilège' TRIGGER' pour cette base de données et cette table. Si vous vous connectez à MySQL avec un utilisateur non privilégié, l'exécution de 'SHOW TRIGGERS' ne retournera rien au lieu de lancer une erreur. Cela peut être déroutant si vous n'êtes pas au courant de l'exigence de privilège. –

8

Pour montrer un déclencheur particulier dans un schéma particulier, vous pouvez essayer ce qui suit:

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

Vous pouvez utiliser ci-dessous pour une définition de déclencheur particulier.

SHOW TRIGGERS LIKE '%trigger_name%'\G 

ou ci-dessous pour afficher tous les déclencheurs dans la base de données. Cela fonctionnera pour MySQL 5.0 et plus.

SHOW TRIGGERS\G 
9

J'espère que le code suivant vous donnera plus d'informations.

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

Cela vous donnera un total de 22 colonnes dans version de MySQL: 5.5.27 et au-dessus

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

J'éviterais d'utiliser 'LIKE' quand je ferais face à un schéma. J'ai travaillé dans des environnements où le faire de cette façon serait source d'erreurs si un client avait une base de données nommée "company" et une autre nommée "company_project". Je suggère également de capitaliser KEYWORDS pour plus de clarté et INFORMATION_SCHEMA et les colonnes là-bas donc il est clair que vous n'avez pas affaire à une base de données régulière. – AndrewWhalan

Questions connexes