I MySQL kan vi bruge IF EXISTS
klausul i DROP TABLE
sætning for at kontrollere, om tabellen eksisterer eller ej, før den slettes.
Eksempel
Her er et eksempel til demonstration:
DROP TABLE IF EXISTS t1;
Denne sætning udlader en tabel kaldet t1
hvis den findes.
Da jeg kørte den erklæring, eksisterede tabellen allerede, så den blev slettet, og jeg fik følgende besked:
Query OK, 0 rows affected (0.00 sec)
Da jeg kørte erklæringen igen (efter at den allerede var blevet slettet), fik jeg følgende besked:
Query OK, 0 rows affected, 1 warning (0.00 sec)
Så der var ingen fejl, men jeg fik en advarsel.
Lad os tage et kig på advarslen:
SHOW WARNINGS;
Resultat:
+-------+------+-------------------------+ | Level | Code | Message | +-------+------+-------------------------+ | Note | 1051 | Unknown table 'test.t1' | +-------+------+-------------------------+
Advarslen fortæller os, at tabellen ikke eksisterer, men det er ikke en fejl.
Her er, hvad der sker, når vi ikke bruger IF EXISTS
:
DROP TABLE t1;
Resultat:
ERROR 1051 (42S02): Unknown table 'test.t1'
Denne gang får vi en fejl.
Se også 5 måder at kontrollere, om en tabel eksisterer i MySQL, hvis du blot vil kontrollere, om en tabel eksisterer uden at slippe den.