V MySQL můžeme použít IF EXISTS
klauzule DROP TABLE
příkaz ke kontrole, zda tabulka existuje nebo ne, než ji zrušíte.
Příklad
Zde je příklad k demonstraci:
DROP TABLE IF EXISTS t1;
Tento příkaz zruší tabulku nazvanou t1
pokud existuje.
Když jsem spustil tento příkaz, tabulka již existovala, a tak byla zrušena a zobrazila se následující zpráva:
Query OK, 0 rows affected (0.00 sec)
Když jsem příkaz znovu spustil (poté, co byl již zrušen), dostal jsem následující zprávu:
Query OK, 0 rows affected, 1 warning (0.00 sec)
Takže nedošlo k žádné chybě, ale dostal jsem varování.
Podívejme se na varování:
SHOW WARNINGS;
Výsledek:
+-------+------+-------------------------+ | Level | Code | Message | +-------+------+-------------------------+ | Note | 1051 | Unknown table 'test.t1' | +-------+------+-------------------------+
Varování nám říká, že tabulka neexistuje, ale není to chyba.
Co se stane, když nepoužijeme IF EXISTS
:
DROP TABLE t1;
Výsledek:
ERROR 1051 (42S02): Unknown table 'test.t1'
Tentokrát se zobrazí chyba.
Podívejte se také na 5 způsobů, jak zkontrolovat, zda tabulka existuje v MySQL, pokud chcete pouze zkontrolovat, zda tabulka existuje, aniž byste ji zrušili.