Sobes.tech
Middle

Каква е разликата между DELETE и TRUNCATE в SQL?

sobes.tech AI

Отговор от AI

Основните разлики между DELETE и TRUNCATE в SQL:

  • DELETE изтрива редове от таблица ред по ред и може да има условие WHERE. Операцията се записва в лог, което позволява връщане (ROLLBACK).
  • TRUNCATE изтрива всички редове от таблицата напълно, без възможност за задаване на условие. Това е по-бърза операция, тъй като не логва изтриването на всеки ред поотделно, а нулира страниците с данни.

Пример:

DELETE FROM users WHERE age < 18; -- ще изтрие само потребителите под 18 години
TRUNCATE TABLE users; -- ще изтрие всички потребители наведнъж

Освен това, TRUNCATE обикновено нулира броячите за автоинкремент, а DELETE — не.