Middle
Jaký je rozdíl mezi DELETE a TRUNCATE v SQL?
sobes.tech AI
Odpověď od AI
Hlavní rozdíly mezi DELETE a TRUNCATE v SQL:
- DELETE odstraňuje řádky z tabulky po řádcích a může mít podmínku
WHERE. Operace je zaznamenána do logu, což umožňuje vrácení změn (ROLLBACK). - TRUNCATE odstraňuje všechny řádky z tabulky úplně, bez možnosti specifikovat podmínku. Je to rychlejší operace, protože nezaznamenává odstranění každého řádku zvlášť, ale resetuje datové stránky.
Příklad:
DELETE FROM users WHERE age < 18; -- odstraní pouze uživatele mladší 18 let
TRUNCATE TABLE users; -- odstraní všechny uživatele najednou
Také TRUNCATE obvykle resetuje počítadla automatického inkrementu, zatímco DELETE nikoliv.