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