F

Alle Tabellen einer Datenbank mit einer SQL-Abfrage (Query) löschen

Möglicherweise ist ein DROP der Datenbank keine Option und Sie wollen nur alle Tabellen löschen. Hier finden Sie Möglichkeiten für Oracle und MySQL.

Dieser Artikel behandelt

Datenbanksysteme

ÄHNLICHE THEMEN

Wie kann ich alle Tabellen mir nur einer SQL-Query löschen?

Zunächst einmal könnte man sich die Frage stellen, ob es nicht einfacher wäre, die SQL-Datenbank komplett zu löschen und dann wieder anzulegen. Das klingt plausibel, hat aber möglicherweise Nachteile. Eventuell verlieren Sie dadurch die Benutzer-Berechtigungen. Außerdem könnte es sein, dass der Benutzer zwar Tabellen löschen und erstellen kann, aber keine Berechtigung für das Löschen einer SQL-Datenbank hat.

Es gibt leider keinen Befehl DROP ALL TABLES. Somit können Sie das nicht mithilfe eines einzigen SQL-Ausdrucks realisieren. Am einfachsten ist es, die „DROP TABLE“-Befehle fließend oder in Echtzeit (on the fly) zu erstellen. Das könnte wie folgt aussehen:

SPOOL drop_tables.sql
SELECT 'DROP TABLE '||table_name||';' FROM user_tables;
SPOOL OFF
@drop_tables

Das Script drop_tables.sql wird dynamisch für alle Tabellen in Ihrem Schema erschaffen.

MySQL hat etwas Ähnliches wie SPOOL für Oracle. Es nennt sich tee und notee.

Bei MySQL könnten Sie für eine äquivalente Lösch-Aktion nachfolgenden Befehl ausführen:

SELECT concat('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE
table_schema = 'Mein Datenbank Name';

Sollten Fremdschlüssel (Foreign Key) ein Problem sein, lassen sich diese mit

SET FOREIGN_KEY_CHECKS = 0

deaktivieren. Ersetzen Sie die 0 mit einer 1, sind sie wieder aktiv.

Da MySQL häufig auf Linux-Servern Einsatz findet, führen hier viele Wege nach Rom. Im Prinzip können Sie maßgeschneiderte Script-Lösungen via Konsole schreiben und danach auf die Datenbank loslassen.

Artikel wurde zuletzt im Februar 2014 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Datenbanksysteme

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close