Sobes.tech
Middle

Kuo skiriasi DELETE ir TRUNCATE SQL?

sobes.tech AI

Atsakymas iš AI

Pagrindiniai skirtumai tarp DELETE ir TRUNCATE SQL:

  • DELETE ištrina eilutes iš lentelės po eilutės ir gali turėti WHERE sąlygą. Operacija yra registruojama žurnale, leidžianti atšaukti pakeitimus (ROLLBACK).
  • TRUNCATE visiškai ištrina visas eilutes iš lentelės, be galimybės nurodyti sąlygą. Tai greitesnė operacija, nes ji neregistruoja kiekvieno eilutės ištrynimo, o atstatinėja duomenų puslapius.

Pavyzdys:

DELETE FROM users WHERE age < 18; -- ištrins tik jaunesnius nei 18 metų naudotojus
TRUNCATE TABLE users; -- ištrins visus naudotojus iš karto

Be to, TRUNCATE dažnai atstatinėja automatinio didinimo skaitiklius, o DELETE — ne.