I PostgreSQL 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 sætning i Azure Data Studio (med dens Postgres-udvidelse), eksisterede tabellen allerede, og så blev den droppet, og jeg fik følgende besked:
Commands completed successfully
Da jeg kørte erklæringen igen (efter at den allerede var blevet slettet), fik jeg følgende besked:
NOTICE: table "t1" does not exist, skipping Commands completed successfully
Der opstod ingen fejl, men jeg fik en "meddelelse" om, at tabellen ikke eksisterer, sammen med en meddelelse om, at kommandoen blev gennemført.
Her er, hvad der sker, når vi ikke bruger IF EXISTS
:
DROP TABLE t1;
Resultat:
table "t1" does not exist
Denne gang får vi en fejl, der fortæller os, at tabellen ikke eksisterer.
Se også 5 måder at kontrollere, om en tabel eksisterer i PostgreSQL, hvis du bare vil kontrollere, om en tabel eksisterer eller ej uden at slippe den.