English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden Sie lernen, wie Sie alle Zeilen aus einer Tabelle mit SQL schnell löschen können.
Die TRUNCATE TABLE-Anweisung ist schneller als DELETE, um alle Zeilen aus der Tabelle zu löschen. Logischerweise ähnelt TRUNCATE TABLEDELETEkeineWHEREAnweisung verwenden.
Die TRUNCATE TABLE-Anweisung löscht alle Zeilen aus der Tabelle, aber die Tabellenstruktur und ihre Spalten, Beschränkungen, Indizes usw. bleiben unverändert. Um die Tabelle und ihre Daten zu löschen, können Sie dieseDROP TABLEAnweisung, aber operieren Sie vorsichtig.
Grundlegende Syntax von TRUNCATE TABLE:
TRUNCATE TABLE table_name;
Lassen Sie uns eine Leerschleife auf die Datenbanktabelle ausführen.
Denken wir daran, dass wir in der Datenbank eineemployeeenthalten die folgenden Aufzeichnungen:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 4 | | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
Die folgenden Anweisungen ausemployeesalle Zeilen aus der Tabelle zu löschen:
TRUNCATE TABLE employees;
Nun, nach der Ausführung der obigen SQL-Anweisungen, wenn Sie versuchen, vonemployeein der TabelleWählen Sie Aufzeichnungenwird eine leere Ergebnismenge erhalten.
Obwohl DELETE und TRUNCATE TABLE scheinbar die gleiche Wirkung haben, arbeiten sie jedoch auf unterschiedliche Weise. Hier sind einige der Hauptunterschiede zwischen diesen beiden Anweisungen:
Der TRUNCATE TABLE-Befehl löscht und erstellt die Tabelle neu und setzt alle automatischen Inkrementwerte auf ihren ursprünglichen Wert (normalerweise }}1)
DELETE ermöglicht es Ihnen, Zeilen gemäß einer optionalen WHERE-Klausel zu filtern, während TRUNCATE TABLE keine WHERE-Klausel unterstützt und nur alle Zeilen löscht.
TRUNCATE TABLE ist schneller und verwendet weniger Systemressourcen als DELETE, da DELETE die Tabelle scannt, um die Anzahl der betroffenen Zeilen zu ermitteln, und dann jede Zeile einzeln löscht, und für jede gelöschte Zeile einen Eintrag im Datenbankprotokoll führt, während TRUNCATE TABLE nur alle Zeilen löscht und keine anderen Informationen bereitstellt.
Hinweis:Wenn Sie nur alle Zeilen löschen möchten und die gesamte Tabelle neu erstellen, verwenden Sie TRUNCATE TABLE. Wenn Sie nur eine begrenzte Anzahl von Zeilen basierend auf bestimmten Bedingungen löschen möchten oder wenn Sie den automatischen Inkrementwert nicht zurücksetzen möchten, verwenden Sie DELETE.