2008-09-06 9 views

risposta

88

Il comando è:

show triggers 

oppure è possibile accedere alla tabella INFORMATION_SCHEMA direttamente da:

select trigger_schema, trigger_name, action_statement 
from information_schema.triggers 
  • È possibile farlo a partire dalla versione 5.0.10 in poi.
  • Ulteriori informazioni sullo TRIGGERS table is here.
+2

Mi consiglia di andare con l'utilizzo del "SHOW innesca" query invece di accedere direttamente information_schema - quest'ultimo sarà molto lento una volta che avrai più di mille database sul server mentre "SHOW TRIGGERS" ha ancora prestazioni eccezionali. –

+0

Grazie alla seconda versione "complicata" di fpr. Il primo non funziona (non si conosce il resion) su uno degli host ... – userlond

+1

Nota che 'SHOW TRIGGERS' richiede di avere il privilegio' TRIGGER' per quel database e tabella. Se accedi a MySQL con un utente non privilegiato, l'esecuzione di 'SHOW TRIGGERS' non restituirà nulla invece di generare un errore. Ciò può essere fonte di confusione se non si è a conoscenza del requisito dei privilegi. –

8

Per mostrando un particolare innesco in uno schema particolare è possibile provare i seguenti:

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

È possibile utilizzare qui sotto per trovare una particolare definizione di innesco.

SHOW TRIGGERS LIKE '%trigger_name%'\G 

o sotto per visualizzare tutti i trigger nel database. Funzionerà per MySQL 5.0 e versioni successive.

SHOW TRIGGERS\G 
9

Spero che il seguente codice ti fornisca ulteriori informazioni.

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

Questo vi darà totale 22 colonne in versione di MySQL: 5.5.27 e Sopra

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

Eviterei di usare 'LIKE' quando si ha a che fare con lo schema. Ho lavorato in ambienti dove farlo in quel modo sarebbe soggetto a errori in cui un client aveva un database chiamato "società" e un altro chiamato "company_project". Suggerirei anche di utilizzare KEYWORDS per chiarezza e INFORMATION_SCHEMA e le colonne lì, quindi è chiaro che non hai a che fare con un normale DB. – AndrewWhalan