Sobes.tech
Middle

Kāda ir atšķirība starp DELETE un TRUNCATE SQL?

sobes.tech AI

Atbilde no AI

Galvenās atšķirības starp DELETE un TRUNCATE SQL:

  • DELETE izdzēš rindas no tabulas pa rindai un var saturēt WHERE nosacījumu. Operācija tiek reģistrēta žurnālā, kas ļauj atcelt izmaiņas (ROLLBACK).
  • TRUNCATE pilnībā izdzēš visas rindas no tabulas, bez iespējas norādīt nosacījumu. Tā ir ātrāka operācija, jo tā ne reģistrē katras rindas dzēšanu, bet atiestatīs datu lapas.

Piemērs:

DELETE FROM users WHERE age < 18; -- izdzēsīs tikai lietotājus, kas jaunāki par 18
TRUNCATE TABLE users; -- izdzēsīs visus lietotājus uzreiz

Turklāt, TRUNCATE parasti atiestatīs automātiskās palielināšanas skaitītājus, kamēr DELETE — nē.