Sobes.tech
Middle

Care este diferența dintre DELETE și TRUNCATE în SQL?

sobes.tech AI

Răspuns de la AI

Principalele diferențe între DELETE și TRUNCATE în SQL:

  • DELETE șterge rânduri din tabel unul câte unul și poate avea o condiție WHERE. Operația este înregistrată în jurnal, permițând revertarea (ROLLBACK).
  • TRUNCATE șterge toate rândurile din tabel în întregime, fără posibilitatea de a specifica o condiție. Este o operație mai rapidă, deoarece nu înregistrează ștergerea fiecărui rând individual, ci resetează paginile de date.

Exemplu:

DELETE FROM users WHERE age < 18; -- va șterge doar utilizatorii sub 18 ani
TRUNCATE TABLE users; -- va șterge toți utilizatorii deodată

De asemenea, TRUNCATE resetează de obicei contoarele auto-increment, în timp ce DELETE nu.