Sobes.tech
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.