Middle
Aký je rozdiel medzi DELETE a TRUNCATE v SQL?
sobes.tech AI
Odpoveď od AI
Hlavné rozdiely medzi DELETE a TRUNCATE v SQL:
- DELETE odstraňuje riadky z tabuľky riadok po riadku a môže mať podmienku
WHERE. Operácia je zaznamenaná do logu, čo umožňuje vrátenie zmien (ROLLBACK). - TRUNCATE odstraňuje všetky riadky z tabuľky úplne, bez možnosti špecifikovať podmienku. Je to rýchlejšia operácia, pretože nezaznamenáva odstránenie každého riadku zvlášť, ale resetuje dátové stránky.
Príklad:
DELETE FROM users WHERE age < 18; -- odstráni iba používateľov mladších ako 18 rokov
TRUNCATE TABLE users; -- odstráni všetkých používateľov naraz
Okrem toho, TRUNCATE zvyčajne resetuje počítadlá auto-increment, zatiaľ čo DELETE nie.