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
WHEREsą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.