Direkt zum Inhalt
Urkunden
FunktionenAusdrückeSchlüsselwörterAussagenKlauseln

MySQL TRUNCATE TABLE-Anweisung

Die Anweisung `TRUNCATE TABLE` in MySQL wird verwendet, um alle Zeilen aus einer Tabelle zu löschen und sie damit auf ihren leeren Zustand zurückzusetzen. Im Gegensatz zu `DELETE` führt es diesen Vorgang schnell aus, indem es die von der Tabelle verwendeten Datenseiten freigibt.

Verwendung

Die Anweisung `TRUNCATE TABLE` wird verwendet, wenn du schnell alle Daten aus einer Tabelle entfernen willst, ohne einzelne Zeilenlöschungen zu protokollieren. Sie wird oft während der Entwicklung oder beim Zurücksetzen von Tabellen für Testumgebungen eingesetzt.

TRUNCATE TABLE table_name;

In dieser Syntax gibt `TRUNCATE TABLE table_name` die Tabelle an, aus der alle Zeilen entfernt werden sollen. Beachte, dass `TRUNCATE TABLE` eine Data Definition Language (DDL)-Operation ist und die Transaktion implizit festschreibt, was bedeutet, dass ihre Auswirkungen sofort eintreten und nicht zurückgenommen werden können, wenn sie nicht innerhalb einer Transaktion stattfinden.

Beispiele

1. Basic Truncate

TRUNCATE TABLE employees;

In diesem Beispiel werden alle Einträge aus der Tabelle "Mitarbeiter" entfernt, sodass sie leer bleibt.

2. Trunkieren mit deaktivierten Fremdschlüsselprüfungen

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE orders;
SET FOREIGN_KEY_CHECKS = 1;

Hier werden die Fremdschlüsselprüfungen vorübergehend deaktiviert, um die Tabelle "Bestellungen" abzuschneiden, die Abhängigkeiten haben könnte.

3. Auto-Inkrement abschneiden und zurücksetzen

TRUNCATE TABLE logs;

Wenn du die Tabelle "Logs" abschneidest, werden nicht nur alle Zeilen gelöscht, sondern auch alle Zähler für die automatische Erhöhung auf ihre ursprünglichen Werte zurückgesetzt.

Tipps und bewährte Praktiken

  • Mit Vorsicht verwenden. TRUNCATE TABLE" kann nicht zurückgesetzt werden, wenn es nicht innerhalb einer Transaktion geschieht.
  • Betrachte die Fremdschlüssel. Deaktiviere vorübergehend die Fremdschlüsselprüfungen, wenn dies beim Kürzen von Tabellen mit Abhängigkeiten erforderlich ist.
  • Daten effektiv zurücksetzen. Verwende diesen Befehl, um Daten in Test- oder Entwicklungsumgebungen schnell zurückzusetzen, anstatt `DELETE` zu verwenden.
  • Hüte dich vor Berechtigungen. Vergewissere dich, dass du die nötigen Rechte hast, denn `TRUNCATE TABLE` erfordert `DROP`-Rechte für die Tabelle.
  • Auslöser werden nicht aktiviert. Im Gegensatz zu `DELETE` aktiviert `TRUNCATE TABLE` keine Trigger, was bei deinen Datenbankoperationen ein wichtiger Aspekt sein kann.
  • Auswirkungen auf die Indizes. Beim Kürzen einer Tabelle werden auch Indizes entfernt und neu erstellt, was beim Zurücksetzen großer Tabellen zu Leistungsverbesserungen führen kann.

SQL Upskilling für Einsteiger

Erwerbe die SQL-Kenntnisse, um mit deinen Daten zu interagieren und sie abzufragen.
Kostenloses Lernen beginnen