Einführung
Die DROP TABLE
-Anweisung ermöglicht das Entfernen einer Tabelle aus einer MySQL-Datenbank. Diese Anweisung löscht die gesamte Struktur sowie den Inhalt der Tabelle.
Das Tutorial untersucht DROP
-Anweisung befiehlt und zeigt Optionen zum Löschen von Tabellen aus MySQL-Datenbanken .
Voraussetzungen
- Zugriff auf ein Terminalfenster/eine Befehlszeile
- Ein System, auf dem MySQL läuft
- Eine Arbeits- oder Testdatenbank
- Ein MySQL-Benutzer mit den erforderlichen Rechten (DROP-Rechte erforderlich)
DROP TABLE MySQL-Befehlssyntax
Um eine Tabelle in MySQL zu entfernen, verwenden Sie DROP TABLE
Erklärung. Die grundlegende Syntax des Befehls lautet wie folgt:
DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] [RESTRICT | CASCADE];
Lassen Sie uns die Syntax aufschlüsseln:
- Die
DROP TABLE
Anweisung löscht eine Tabelle und ihre Zeilen dauerhaft. - Der
[TEMPORARY]
Option stellt sicher, dass Sie nur temporäre Tabellen entfernen. - Der
[IF EXISTS]
Option löscht eine Tabelle nur, wenn sie existiert. - Der
[RESTRICT]
Option wird in zukünftigen Iterationen von MySQL verfügbar sein. Es stellt sicher, dass eine übergeordnete Zeile nicht gelöscht wird, wenn eine untergeordnete Zeile auf einen Wert in dieser übergeordneten Zeile verweist. - Der
[CASCADE]
Die Option stellt sicher, dass beim Löschen einer Zeile alle Zeilen in verknüpften Tabellen, die auf diese Zeile verweisen, ebenfalls gelöscht werden. Diese Option wird in zukünftigen Versionen von MySQL verfügbar sein.
Verwenden Sie die DROP-Anweisung, um eine Tabelle zu entfernen
Um eine Tabelle dauerhaft zu entfernen, geben Sie die folgende Anweisung in der MySQL-Shell ein:
DROP TABLE table1;
Ersetzen Sie table1
mit dem Namen der Tabelle, die Sie löschen möchten. Die Ausgabe bestätigt, dass die Tabelle entfernt wurde.
Verwenden Sie DROP, um nur vorhandene Tabellen zu entfernen
MySQL generiert einen Fehler, wenn Sie versuchen, eine nicht vorhandene Tabelle zu löschen. Dies kann ein Problem sein, wenn DROP
eingeschlossen wird Anweisung in einem vordefinierten Skript.
Um MySQL zuerst zu prüfen, ob eine Tabelle existiert:
DROP TABLE IF EXISTS table1;
Der IF EXISTS
Option generiert eine Warnung, wenn table1
existiert nicht.
Die Verwendung dieser Option verhindert, dass ein Skript bei einem Fehler hängen bleibt. Zeigen Sie die Warnung an, indem Sie Folgendes eingeben:
SHOW WARNINGS;
So löschen Sie mehrere Tabellen
Um mehrere Tabellen mit einem einzigen DROP
zu löschen Aussage:
DROP TABLE IF EXISTS table1, table2, table3;
Der IF EXISTS
Option zeigt eine Warnung als table1
existiert nicht.
So löschen Sie eine temporäre Tabelle
Temporäre Tabellen werden verwendet, um einen Datensatz kurz vor der Verwendung zu generieren und zu speichern.
Beispielsweise könnten Sie sich dafür entscheiden, die Ergebnisse eines SELECT
zu speichern -Anweisung mit mehreren JOIN-Anweisungen in einer temporären Tabelle. Als nächstes fragen Sie die temporäre Tabelle ganz einfach ab.
Um temporäre Tabellen zu entfernen, ohne den Verlust regulärer Tabellen zu riskieren, verwenden Sie TEMPORARY
Möglichkeit:
DROP TEMPORARY TABLE IF EXISTS table4;
Wie man Tabellen basierend auf Zeichenketten DROPT
MySQL hat keinen eingebauten Befehl zum Löschen von Tabellen, die mit einer Zeichenkette übereinstimmen. Verwenden Sie stattdessen ein Skript, um diese Aufgabe auszuführen.
1. Definieren Sie die Datenbank und die Zeichenfolge, die Sie filtern möchten:
set @schema = 'tableselection';
set @string = 'table%';
Ersetzen Sie tableselection
mit dem Namen Ihrer Datenbank. Ersetzen Sie table%
mit der Zeichenfolge, die Sie auswählen und löschen möchten. Achten Sie darauf, %
beizubehalten Platzhalter am Ende.
2. Erstellen Sie eine MySQL-Anweisung, die alle Tabellen auswählt, die mit der Zeichenkette übereinstimmen:
SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;
Dieser Code wählt alle Tabellen mit table%
aus Zeichen, die vom information_schema
angegeben werden Tisch. Anschließend werden sie verkettet und ein DROP
ausgeführt Aussage gegen die Gruppe.
3. Erstellen Sie eine Auswahl aus den Ergebnissen dieses Codes:
SELECT @droptool;
4. Zeigen Sie den Inhalt des Befehls an:
PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Der Code im folgenden Abschnitt wird der Einfachheit halber vollständig dargestellt:
set @schema = 'tableselection';
set @string = 'table%';
SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;
SELECT @droptool;
PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;