Основные различия между DELETE и TRUNCATE в SQL:
В чем разница DELETE и TRUNCATE в SQL?
Основные различия между DELETE и TRUNCATE в SQL:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Основные различия между DELETE и TRUNCATE в SQL:
- DELETE удаляет строки из таблицы построчно и может иметь условие
WHERE. Операция логируется, что позволяет откатить изменения (ROLLBACK). - TRUNCATE удаляет все строки из таблицы целиком, без возможности указать условие. Это более быстрая операция, так как не логирует удаление каждой строки отдельно, а сбрасывает данные страницы.
Пример:
DELETE FROM users WHERE age < 18; -- удалит только пользователей младше 18
TRUNCATE TABLE users; -- удалит всех пользователей сразу
Также TRUNCATE обычно сбрасывает счётчики автоинкремента, а DELETE — нет.