Mit der DROP TABLE SQL-Anweisung können Sie eine Tabelle aus der Datenbank löschen. Wenn die Tabelle nicht vorhanden wäre, würde der Versuch, sie abzulegen, zu einem Fehler führen.
Die SQL-Anweisung DROP TABLE IF EXISTS ermöglicht eine Überprüfung, ob die Tabelle vorhanden ist, bevor das Löschen (Löschen) der Tabelle versucht wird. Wenn die Tabelle nicht vorhanden ist, wird die Anweisung DROP TABLE nicht ausgeführt, sodass kein Fehler auftritt.,
Syntax
Die Syntax kann je nachdem, welche Datenbank Sie ausführen, leicht abweichen.
SQL Server
DROP TABLE TableName
legen Sie, WENN VORHANDEN, nur verfügbar von SQL Server 2016 an.
MySQL
Tabellenname LÖSCHEN
Das TEMPORÄRE Schlüsselwort kann in MySQL verwendet werden, um anzugeben, dass nur eine temporäre Tabelle gelöscht werden kann.,
Beispiele für die Verwendung von DROP TABLE IF EXISTS
Beispiel 1-Löschen einer Tabelle mit DROP TABLE mit der IF EXISTS Klausel
Beispiel 2-Fehler, der auftritt, wenn DROP TABLE ohne die IF EXISTS Klausel
-- if we attempt to DROP the table that we just created and dropped then we will get an errorDROP TABLE dbo.Country;
Der zurückgegebene Fehler lautet: Die Tabelle ‚dbo‘ kann nicht gelöscht werden.Land‘, weil es nicht existiert oder Sie keine Erlaubnis haben.,
Beispiel 3-Verwendung mit temporären Tabellen in SQL Server
Beispiel 4 – Verwendung mit temporären Tabellen in MySQL
-- temp table MySQLCREATE TEMPORARY TABLE Continent( Id INT PRIMARY KEY, Continent varchar(50));DROP TEMPORARY TABLE IF EXISTS Continent;
Alternative Methoden zum Löschen einer Tabelle mit einer exists-Prüfung
Sie können das INFORMATION_SCHEMA der Datenbank verwenden, um dieselbe Funktionalität auszuführen. Diese Methode wird von den meisten großen Datenbanken wie SQL Server, MySQL, Oracle, PostGres und IBM DB2 unterstützt. Das INFORMATION_SCHEMA ist ANSI SQL-konform und soll das Auffinden von Datenbankobjektinformationen ermöglichen.,
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'Country' AND TABLE_SCHEMA = 'dbo') DROP TABLE dbo.Country;
Wenn Sie eine Version von SQL Server vor SQL Server 2016 ausführen, können Sie die folgende Methode verwenden, um den gleichen Zweck wie DROP TABLE zu erreichen, FALLS vorhanden. Dies beinhaltet die Verwendung einer IF-Anweisung in Kombination mit der OBJECT_ID-Funktion. Dem 2. Parameter der OBJECT_ID Funktion wird ein ‚u‘ übergeben. Dies stellt den zu überprüfenden Objekttyp dar und in diesem Fall steht ‚u‘ für eine ‚Benutzerdefinierte Tabelle‘.,
Schlussfolgerung
Wir haben in diesem Artikel gesehen, wie die Verwendung der IF EXISTS-Klausel mit der DROP TABLE-Anweisung eine einfache einzeilige Methode zur Überprüfung der Existenz einer Tabelle bietet, bevor versucht wird, diese zu löschen. Die DROP IF EXISTS-Methode kann auch mit anderen Arten von Datenbankobjekten verwendet werden, um einen konsistenten, einfachen Ansatz zum Schreiben von DDL-Anweisungen (Data Definition Language) in Ihren SQL-Code zu ermöglichen.,
Wenn Sie eine Datenbankplattform ausführen, die DROP IF EXISTS nicht unterstützt, haben wir einige alternative Methoden untersucht, mit denen Sie dieselben Ergebnisse erzielen können, wenn auch auf weniger prägnante Weise.
Anzeige melden