2008-09-06 13 views

Respuesta

88

El comando es:

show triggers 

o se puede acceder a la tabla INFORMATION_SCHEMA directamente por:

select trigger_schema, trigger_name, action_statement 
from information_schema.triggers 
  • Esto se puede hacer desde la versión 5.0.10 en adelante.
  • Más información sobre el TRIGGERS table is here.
+2

recomiendo ir con el uso de la opción "Mostrar disparadores" consulta en lugar de acceder directamente INFORMATION_SCHEMA - este último será muy lento una vez que tenga más de mil bases de datos en el servidor, mientras que "SHOW TRIGGERS" todavía tiene un rendimiento sobresaliente. –

+0

Gracias por la segunda versión "complicada". El primero no funciona (no se conoce el resion) en uno de los hosts ... – userlond

+1

Tenga en cuenta que 'SHOW TRIGGERS' requiere que usted tenga el privilegio' TRIGGER' para esa base de datos y tabla. Si inicia sesión en MySQL con un usuario sin privilegios, la ejecución de 'SHOW TRIGGERS' no arrojará nada en lugar de arrojar un error. Eso puede ser confuso si no conoce el requisito de privilegio. –

8

Para mostrar un disparador particular, en un esquema particular que usted puede intentar lo siguiente:

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

Puede utilizar a continuación para encontrar una definición de disparo en particular.

SHOW TRIGGERS LIKE '%trigger_name%'\G 

o el siguiente para mostrar todos los factores desencadenantes en la base de datos. Funcionará para MySQL 5.0 y superior.

SHOW TRIGGERS\G 
9

Espero que el siguiente código le brinde más información.

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

Esto le dará total de 22 columnas en versión de MySQL: 5.5.27 por encima del promedio

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

Evitaría usar 'LIKE' al tratar con el esquema. He trabajado en entornos donde hacerlo de esa manera sería propenso a errores, donde un cliente tenía una base de datos llamada "compañía" y otra llamada "proyecto_empresa". También sugiero que se capitalicen KEYWORDS para mayor claridad e INFORMATION_SCHEMA y las columnas allí, por lo que está claro que no se trata de una base de datos común. – AndrewWhalan

Cuestiones relacionadas