GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So löschen Sie eine Tabelle in MySQL

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;

Cent OS
  1. So erstellen Sie eine MySQL-Datenbank in Workbench

  2. So kopieren Sie MySQL-Tabellen zwischen Datenbanken

  3. So reparieren Sie eine beschädigte MySQL-Datenbanktabelle

  4. Löschen Sie Tabellen in MySQL

  5. So installieren Sie MySQL 5.6 unter CentOS 6.x

Spickzettel für MySQL-Befehle

So verwenden Sie MySQL-Trigger

So installieren Sie MySQL auf AlmaLinux

So installieren Sie MySQL unter CentOS 8

So installieren Sie MySQL 8.0 unter CentOS 8 / RHEL 8

So installieren Sie MySQL 8 unter CentOS 8