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 — не.