Úvod
MySQL SHOW TRIGGERS
zobrazí všechny definované spouštěče v databázových tabulkách. Příkaz pomáhá poskytnout podrobnosti pro existující spouštěče, včetně názvu, časování události a dalších podrobností.
Přestože je příkaz jednoduchý a funguje bez jakýchkoli voleb, přidání voleb dále zpřesňuje a filtruje datové sloupce. Výsledkem je, že příkaz pomáhá rychle získat požadované informace a poskytuje lepší přehled spouštěcích příkazů v databázi.
Tento výukový program vysvětluje SHOW TRIGGERS
výpis v MySQL podrobně pomocí příkladů.

Předpoklady
- Přístup k serveru MySQL přes terminál nebo MySQL Workbench.
- Oprávnění sudo.
- Přístup uživatele root k MySQL nebo účtu s uživatelským oprávněním TRIGGER.
- Databázová tabulka se spouštěči.
Syntaxe
Syntaxe pro SHOW TRIGGERS
prohlášení je:
SHOW TRIGGERS
[{FROM | IN} <database name>]
[ WHERE <expression> LIKE '<pattern>']
Abyste pochopili, jak příkaz funguje, zde je to, co jednotlivé části dělají:
SHOW TRIGGERS
funguje bez dalších možností pro aktuální výchozí databázi.FROM <database name>
neboIN <database name>
poskytuje název databáze k vyhledání. PřidejteFROM
neboIN
klauzule a uveďte název databáze pro zobrazení spouštěčů z konkrétní databáze.WHERE <expression>
vybere řádky z výsledku na základě poskytnutého výrazu.LIKE '<pattern>'
filtrujeWHERE
výraz a zobrazí pouze hodnoty, které odpovídají vzoru.
MySQL SHOW TRIGGERS:Jak příkaz funguje?
SHOW TRIGGERS
zobrazuje všechny spouštěče definované v pracovní databázi. Přidání konkrétních možností umožňuje zobrazit informace o aktivaci z databáze bez výběru databáze. Kromě toho další možnosti umožňují filtrování výstupu pro upřesněné vyhledávání.
Před spuštěním otevřete terminál (CTRL +ALT +T ) a připojte se k databázovému serveru:
sudo mysql -u <username> -p

Výzva se změní na mysql>
, což znamená úspěšné připojení k monitoru MySQL.
Seznam spouštěčů
Existují dva způsoby, jak vypsat spouštěče pomocí SHOW TRIGGERS
prohlášení:
1. Chcete-li vypsat spouštěče bez připojení k databázi, přidejte FROM
nebo IN
klauzule a zadejte název databáze.
Například:
SHOW TRIGGERS IN <database name>\G
SHOW TRIGGERS FROM <database name>\G

2. Případně se nejprve připojte k databázi:
USE <database name>;
Poté spusťte příkaz bez parametrů:
SHOW TRIGGERS\G

V obou případech výstup zobrazuje tabulku, která obsahuje všechny definované spouštěče.
ZOBRAZIT SLOUPCE SPUŠTĚNÍ v sadě výsledků
Výsledný výstup z SHOW TRIGGERS
zobrazí každý řádek s podrobnostmi o konkrétním spouštěči.

Každý sloupec obsahuje následující atributy:
- Spouštěč je název spouštěče.
- Událost ukazuje akci, když se aktivuje spoušť.
- Tabulka je název tabulky, kde se nachází spouštěč.
- Prohlášení ukazuje, co spoušť dělá. Konkrétně se v tomto poli vytiskne úplný příkaz SQL, který se provede, když spouštěč aktivuje.
- Načasování ukazuje, kdy se spouštěč provede vzhledem k události.
- Vytvořeno vytiskne datum a čas, kdy uživatel aktivoval.
- sql_mode uvádí režimy serveru SQL platné při spuštění spouštěče.
- Definátor určuje uživatele, který vytvořil spouštěč a připojení jako
[email protected]
. - character_set_client zobrazuje znakovou sadu pro příkazy pocházející od klienta.
- collation_connection definuje pravidla znakové sady pro porovnávání a řazení řetězců, když definující vytvořil spouštěč.
- Řazení databází zobrazuje znakovou sadu pro databázi při řazení a porovnávání řetězců spojených se spouštěčem.
MySQL SHOW TRIGGERS:Příklady
Použijte WHERE
nebo LIKE
vyberte sloupce z SHOW TRIGGER
výstup a použijte AND
, OR
a NOT
operátory pro další filtrování vyhledávání. Níže uvedené příklady ukazují typické případy použití.
Zobrazit spouštěče podle tabulky
Chcete-li uvést spouštěče podle názvu tabulky, použijte jednu ze dvou metod:
1. Zobrazte spouštěče z tabulky bez připojení k databázi pomocí:
SHOW TRIGGERS
FROM <database name>
WHERE `Table`='<table name>'\G
Pokud je například název databáze people
a název tabulky je person
, použijte:
SHOW TRIGGERS
FROM people
WHERE `Table`='person'\G

2. Případně se nejprve připojte k databázi:
USE <database name>;
Poté použijte SHOW TRIGGERS
pouze pomocí WHERE
klauzule:
SHOW TRIGGERS
WHERE `Table`='<table name>'\G
Například pro databázi people
s tabulkou person
, spustit:
USE people;
SHOW TRIGGERS
WHERE `Table`='person'\G

V obou případech výstup uvádí všechny spouštěče pro konkrétní tabulku po řádcích.
Zobrazit spouštěče podle události
Každý trigger se aktivuje na určitém příkazu události MySQL. Chcete-li zobrazit spouštěče podle události, použijte následující syntaxi:
SHOW TRIGGERS
FROM <database name>
WHERE `Event`='<event>'\G
Případně se nejprve připojte k databázi:
USE <database name>;
SHOW TRIGGERS
WHERE `Event`='<event>'\G
Možné možnosti pro <event>
jsou:
INSERT
- Aktivuje spouštěč, když uživatel vloží data do tabulky.UPDATE
– Spustí spouštěč, když uživatel aktualizuje data tabulky.DELETE
– Spustí spouštěč, když uživatel odstraní data z tabulky.
Například:
SHOW TRIGGERS
FROM people
WHERE `Event`='DELETE'\G

Výstup zobrazuje pouze ty spouštěče, kde je událost DELETE
.
Zobrazit spouštěče podle časování
Načasování parametr odkazuje na Událost , která označuje, zda se spouštěč aktivuje BEFORE
nebo AFTER
prohlášení o události. Chcete-li zobrazit spouštěče založené na časování bez připojení k databázi, použijte následující syntaxi:
SHOW TRIGGERS
FROM <database name>
WHERE `Timing`='<timing>'\G
Chcete-li se nejprve připojit k databázi a poté vypsat spouštěče podle načasování, použijte:
USE <database name>;
SHOW TRIGGERS
WHERE `Timing`='<timing>'\G
S ukázkovými parametry vypadá příkaz takto:
SHOW TRIGGERS
FROM people
WHERE Timing='AFTER'\G

SHOW TRIGGERS
výstup příkazu zobrazuje spouštěče s Časováním nastavte na AFTER
.
Zobrazit spouštěče podle příkazu
Prohlášení obsahuje příkaz SQL, který spouštěč při vyvolání spustí.
Zkombinujte příkaz s LIKE
klauzule k prohledávání spouštěcích příkazů:
SHOW TRIGGERS
FROM <database name>
WHERE `Statement` LIKE '<pattern>'\G
Případně nejprve vyberte databázi a odeberte FROM
část prohlášení:
USE <database name>;
SHOW TRIGGERS
WHERE `Statement` LIKE '<pattern>'\G
LIKE
příkaz provádí vyhledávání podle vzoru pomocí zástupného znaku (%):
- Použijte
%
na konci, aby odpovídaly výrokům, které začínají konkrétním slovem. Například'IF%'
odpovídá všem výskytům, které začínajíIF
prohlášení. - Přidat
%
na začátku, aby odpovídaly výrokům, které končí zadaným slovem. Například'%IF'
odpovídá všem příkazům končícím naIF
prohlášení. - Napište
%
na obou stranách příkazu k vyhledání slova umístěného kdekoli v příkazu.
Příklad hledání spouštěče Prohlášení v tabulce, která obsahuje AVG
Funkce MySQL je:
SHOW TRIGGERS
FROM people
WHERE `Statement` LIKE '%AVG%'\G

Dotaz načte všechny příkazy, které obsahují AVG
funkce.
Kombinace parametrů vyhledávání
Zkombinujte parametry vyhledávání s AND
operátora pro vytváření složitých dotazů. Chcete-li například vyhledat spouštěče, které obsahují AVG
MySQL a mají funkci DELETE
událost, spustit:
SHOW TRIGGERS
FROM people
WHERE `Statement` LIKE '%AVG%' AND `Event`='DELETE'\G

Výsledek ukazuje spouštěče, kde se oba příkazy vyhodnotí jako True . Pro další vytváření dotazů použijte NOT
a OR
operátory.
Zobrazit spouštěče v MySQL Workbench
Všechny SHOW TRIGGERS
příkazy z předchozích příkladů fungují v MySQL Workbench. Jediný rozdíl je v tom, že příkazy končí středníkem (;
) namísto \G
v MySQL Workbench.
Chcete-li zobrazit spouštěče v MySQL Workbench, proveďte následující:
1. Spusťte MySQL Workbench z terminálu (CTRL +ALT +T ) pomocí následujícího příkazu:
mysql-workbench
Případně vyhledejte MySQL Workbench v seznamu aplikací pomocí GUI.

2. Vyberte požadované připojení pro připojení k databázovému serveru.

3. Pokud budete vyzváni, zadejte uživatelské heslo.
4. Přidejte SHOW TRIGGERS
do pole dotazu:
SHOW TRIGGERS;
5. Nakonec spusťte dotaz.

Výsledek se zobrazí jako tabulka obsahující všechny spouštěče.