Introduzione
Il SHOW TRIGGERS
di MySQL visualizza tutti i trigger definiti nelle tabelle del database. Il comando aiuta a fornire i dettagli per i trigger esistenti, inclusi il nome, l'orario dell'evento e altri dettagli.
Sebbene l'istruzione sia semplice e funzioni senza alcuna opzione, l'aggiunta di opzioni perfeziona e filtra ulteriormente le colonne di dati. Di conseguenza, il comando aiuta a recuperare rapidamente le informazioni desiderate, fornendo una migliore panoramica delle istruzioni di attivazione in un database.
Questo tutorial spiega SHOW TRIGGERS
dichiarazione in MySQL in dettaglio utilizzando esempi.
Prerequisiti
- Accesso al server MySQL tramite terminale o MySQL Workbench.
- Privilegi di sudo.
- Accesso root a MySQL o un account con privilegio utente TRIGGER.
- Una tabella di database con trigger.
Sintassi
La sintassi per SHOW TRIGGERS
affermazione è:
SHOW TRIGGERS
[{FROM | IN} <database name>]
[ WHERE <expression> LIKE '<pattern>']
Per capire come funziona la dichiarazione, ecco cosa fa ogni parte:
SHOW TRIGGERS
funziona senza opzioni aggiuntive per il database predefinito corrente.FROM <database name>
oIN <database name>
fornisce il nome del database da cercare. Aggiungi ilFROM
oIN
e indicare il nome del database per visualizzare i trigger da un database specifico.WHERE <expression>
seleziona le righe dal risultato in base all'espressione fornita.LIKE '<pattern>'
filtra ilWHERE
espressione e visualizza solo i valori che corrispondono al modello.
MySQL SHOW TRIGGERS:come funziona la dichiarazione?
Il SHOW TRIGGERS
istruzione mostra tutti i trigger definiti nel database di lavoro. L'aggiunta di opzioni particolari consente di mostrare le informazioni sui trigger da un database senza selezionare il database. Inoltre, ulteriori opzioni consentono di filtrare l'output per ricerche raffinate.
Prima di iniziare, apri il terminale (CTRL +ALT +T ) e connettersi al server del database:
sudo mysql -u <username> -p
Il prompt cambia in mysql>
, che indica una connessione riuscita al monitor MySQL.
Elenco dei trigger
Esistono due modi per elencare i trigger utilizzando il SHOW TRIGGERS
dichiarazione:
1. Per elencare i trigger senza connettersi a un database, aggiungi il FROM
o IN
clausola e fornire il nome del database.
Ad esempio:
SHOW TRIGGERS IN <database name>\G
SHOW TRIGGERS FROM <database name>\G
2. In alternativa, connettiti prima a un database:
USE <database name>;
Quindi, esegui il comando senza alcun parametro:
SHOW TRIGGERS\G
In entrambi i casi, l'output mostra una tabella che contiene tutti i trigger definiti.
Mostra colonne trigger nell'insieme dei risultati
L'output risultante da SHOW TRIGGERS
visualizza ogni riga con i dettagli su un particolare trigger.
Ogni colonna contiene i seguenti attributi:
- Attivatore è il nome del trigger.
- Evento mostra l'azione quando si attiva il trigger.
- Tabella è il nome di una tabella in cui risiede il trigger.
- Dichiarazione mostra cosa fa il trigger. In particolare, l'istruzione SQL completa che viene eseguita quando il trigger si attiva viene stampata in questo campo.
- Temporizzazione mostra quando il trigger viene eseguito in relazione a un evento.
- Creato stampa la data e l'ora in cui un utente ha eseguito il trigger.
- sql_mode elenca le modalità del server SQL in vigore quando viene eseguito il trigger.
- Definitore specifica l'utente che ha creato il trigger e la connessione come
[email protected]
. - character_set_client mostra il set di caratteri per le dichiarazioni che provengono dal cliente.
- collation_connection definisce le regole del set di caratteri per confrontare e ordinare le stringhe quando il definitore ha creato il trigger.
- Confronto database mostra il set di caratteri per il database durante l'ordinamento e il confronto delle stringhe associate al trigger.
TRIGGERS SHOW di MySQL:esempi
Usa il WHERE
o LIKE
per selezionare le colonne da SHOW TRIGGERS
output e utilizzare il AND
, OR
e NOT
operatori per filtrare ulteriormente la ricerca. Gli esempi seguenti mostrano casi d'uso tipici.
Mostra trigger per tabella
Per elencare i trigger in base al nome della tabella, utilizzare uno dei due metodi:
1. Mostra i trigger da una tabella senza connessione a un database con:
SHOW TRIGGERS
FROM <database name>
WHERE `Table`='<table name>'\G
Ad esempio, se il nome del database è people
e il nome della tabella è person
, usa:
SHOW TRIGGERS
FROM people
WHERE `Table`='person'\G
2. In alternativa, connettersi prima al database:
USE <database name>;
Quindi, usa il SHOW TRIGGERS
con solo il WHERE
clausola:
SHOW TRIGGERS
WHERE `Table`='<table name>'\G
Ad esempio, per un database people
con una tabella person
, esegui:
USE people;
SHOW TRIGGERS
WHERE `Table`='person'\G
In entrambi i casi, l'output elenca tutti i trigger per la particolare tabella per righe.
Mostra trigger per evento
Ogni trigger si attiva su una determinata istruzione di evento MySQL. Per elencare i trigger per evento, utilizza la seguente sintassi:
SHOW TRIGGERS
FROM <database name>
WHERE `Event`='<event>'\G
In alternativa, connettiti prima a un database:
USE <database name>;
SHOW TRIGGERS
WHERE `Event`='<event>'\G
Le possibili opzioni per un <event>
sono:
INSERT
- Attiva un trigger quando un utente inserisce dati in una tabella.UPDATE
- Esegue un trigger quando un utente aggiorna i dati della tabella.DELETE
- Esegue un trigger quando un utente elimina i dati da una tabella.
Ad esempio:
SHOW TRIGGERS
FROM people
WHERE `Event`='DELETE'\G
L'output mostra solo i trigger in cui l'evento è DELETE
.
Mostra trigger per tempistica
Il Tempo il parametro si collega all'Evento , indicando se un attivatore attiva BEFORE
o AFTER
una dichiarazione di evento. Per mostrare i trigger in base ai tempi senza connettersi a un database, utilizza la seguente sintassi:
SHOW TRIGGERS
FROM <database name>
WHERE `Timing`='<timing>'\G
Per connetterti prima a un database e poi elencare i trigger in base al tempo, usa:
USE <database name>;
SHOW TRIGGERS
WHERE `Timing`='<timing>'\G
Con parametri di esempio, l'istruzione è simile alla seguente:
SHOW TRIGGERS
FROM people
WHERE Timing='AFTER'\G
Il SHOW TRIGGERS
l'output dell'istruzione mostra i trigger con il Tempo impostato su AFTER
.
Mostra trigger per istruzione
La dichiarazione contiene l'istruzione SQL eseguita dal trigger quando viene richiamato.
Combina il comando con il LIKE
clausola per cercare tra le istruzioni trigger:
SHOW TRIGGERS
FROM <database name>
WHERE `Statement` LIKE '<pattern>'\G
In alternativa, seleziona prima il database e rimuovi il FROM
parte della dichiarazione:
USE <database name>;
SHOW TRIGGERS
WHERE `Statement` LIKE '<pattern>'\G
Il LIKE
istruzione esegue una ricerca di corrispondenza del modello utilizzando il carattere jolly (%):
- Utilizza
%
alla fine per abbinare le affermazioni che iniziano con una parola particolare. Ad esempio,'IF%'
corrisponde a tutte le occorrenze che iniziano conIF
dichiarazione. - Aggiungi
%
all'inizio per abbinare le istruzioni che terminano con una parola specificata. Ad esempio,'%IF'
corrisponde a tutte le istruzioni che terminano conIF
dichiarazione. - Scrivi
%
su entrambi i lati dell'istruzione per cercare una parola che si trova in un punto qualsiasi dell'istruzione.
Un esempio di ricerca di un trigger Dichiarazione in una tabella che contiene il AVG
La funzione MySQL è:
SHOW TRIGGERS
FROM people
WHERE `Statement` LIKE '%AVG%'\G
La query recupera tutte le istruzioni che contengono AVG
funzione.
Combinazione di parametri di ricerca
Combina i parametri di ricerca con il AND
operatore per creare query complesse. Ad esempio, per cercare trigger che contengono AVG
MySQL funzione e avere il DELETE
evento, esegui:
SHOW TRIGGERS
FROM people
WHERE `Statement` LIKE '%AVG%' AND `Event`='DELETE'\G
Il risultato mostra i trigger in cui entrambe le istruzioni restituiscono True . Per la creazione di query aggiuntive, utilizza il NOT
e OR
operatori.
Mostra trigger in MySQL Workbench
Tutti i SHOW TRIGGERS
le istruzioni degli esempi precedenti funzionano in MySQL Workbench. L'unica differenza è che i comandi terminano con un punto e virgola (;
) invece di \G
in MySQL Workbench.
Per mostrare i trigger in MySQL Workbench, procedi come segue:
1. Esegui MySQL Workbench dal terminale (CTRL +ALT +T ) con il seguente comando:
mysql-workbench
In alternativa, cerca MySQL Workbench nell'elenco delle applicazioni tramite la GUI.
2. Selezionare la connessione desiderata per connettersi al server del database.
3. Immettere la password utente se richiesta.
4. Aggiungi il SHOW TRIGGERS
istruzione nella casella della query:
SHOW TRIGGERS;
5. Infine, esegui la query.
Il risultato viene visualizzato come una tabella contenente tutti i trigger.