Back to questions
СБЕР
Junior — Middle
71
Чем отличаются последствия использования команд DELETE и TRUNCATE при удалении данных из таблицы в базе данных?
Companies where asked
ООО Ренью
Answer from AI
sobes.tech AI
Основные отличия между командами DELETE и TRUNCATE в SQL:
-
DELETE:
- Удаляет строки из таблицы по условию (если указано), или все строки, если условие отсутствует.
- Операция логируется построчно, что позволяет откатить изменения (транзакции).
- Триггеры на удаление (DELETE triggers) срабатывают.
- После удаления можно использовать
WHEREдля выборочного удаления.
-
TRUNCATE:
- Удаляет все строки из таблицы целиком.
- Обычно работает быстрее, так как не логирует удаление каждой строки, а просто освобождает страницы данных.
- Не срабатывают триггеры на удаление.
- Не поддерживает условие
WHERE. - Может сбрасывать счетчики автоинкремента.
В итоге, DELETE более гибкий и безопасный для выборочного удаления, а TRUNCATE — быстрый способ полностью очистить таблицу.