Qual è il comando per elencare tutti i trigger in un database MySQL?Come si elencano tutti i trigger in un database MySQL?
risposta
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.
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%'
È 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
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
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
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. –
Grazie alla seconda versione "complicata" di fpr. Il primo non funziona (non si conosce il resion) su uno degli host ... – userlond
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. –