SQL: Unterschied DELETE und TRUNCATE

DELETE ist ein DML-Befehl (Data Manipulation Language) und wird verwendet, wenn wir die Zeile (Tupel) angeben, die wir aus der Tabelle oder Beziehung entfernen oder löschen wollen. Der DELETE-Befehl kann eine WHERE-Klausel enthalten. Wenn die WHERE-Klausel mit dem DELETE-Befehl verwendet wird, werden nur die Zeilen (Tupel) entfernt oder gelöscht, die die Bedingung erfüllen, ansonsten werden standardmäßig alle Tupel (Zeilen) aus der Tabelle entfernt.  Denken Sie daran, dass DELETE die Zeilenlöschungen protokolliert.

Syntax:

DELETE FORM tabellenname
WHERE bedingung;

TRUNCATE ist ein DDL-Befehl (Data Definition Language) und wird verwendet, um alle Zeilen oder Tupel aus einer Tabelle zu löschen. Anders als der Befehl DELETE enthält der Befehl TRUNCATE keine WHERE-Klausel. Beim TRUNCATE-Befehl wird das Transaktionsprotokoll für jede gelöschte Datenseite nicht aufgezeichnet. Im Gegensatz zum DELETE-Befehl ist der TRUNCATE-Befehl schnell. Nach der Verwendung des TRUNCATE-Befehls können die Daten nicht zurücksetzen werden. 

Syntax:

TRUNCATE TABLE tabellenname;

Durch den TRUNCATE-Befehl können große Tabelle sehr schnell gelöscht werden und Probleme mit den „Transaction-Log’s“-Fehler umgangen werden.


Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s