Premium
Frage10
Verbleibend:

Was sind die wichtigsten Unterschiede zwischen DELETE und TRUNCATE?

Musterantwort

Antwort standardmäßig anzeigen

DELETE:

  • Löscht ausgewählte Datensätze aus einer Tabelle.
  • Du kannst eine WHERE-Bedingung verwenden, um gezielt Datensätze zu entfernen.
  • Die Operation wird zeilenweise im Transaktionslog aufgezeichnet.
  • ON DELETE-Trigger werden ausgelöst.
  • Langsamer als TRUNCATE.

Beispiel:

MySQL 8.1
DELETE FROM employees WHERE salary < 30000;

TRUNCATE:

  • Löscht alle Datensätze aus der Tabelle, ohne Möglichkeit zur Wiederherstellung per ROLLBACK (in den meisten DBMS).
  • WHERE kann nicht verwendet werden.
  • Die Operation ist schneller, da sie nicht zeilenweise protokolliert wird.
  • Setzt Identifier zurück (falls Autoincrement verwendet wird).
  • Trigger werden nicht ausgelöst.

Beispiel:

MySQL 8.1
TRUNCATE TABLE employees;