Junior — Middle
Quelle est la différence entre les conséquences de l'utilisation des commandes DELETE et TRUNCATE lors de la suppression de données d'une table dans une base de données?
sobes.tech IA
Réponse de l'IA
Основные отличия между командами DELETE и TRUNCATE в SQL:
-
DELETE:
- Удаляет строки из таблицы по условию (если указано), или все строки, если условие отсутствует.
- Операция логируется построчно, что позволяет откатить изменения (транзакции).
- Триггеры на удаление (DELETE triggers) срабатывают.
- После удаления можно использовать
WHEREдля выборочного удаления.
-
TRUNCATE:
- Удаляет все строки из таблицы целиком.
- Обычно работает быстрее, так как не логирует удаление каждой строки, а просто освобождает страницы данных.
- Не срабатывают триггеры на удаление.
- Не поддерживает условие
WHERE. - Может сбрасывать счетчики автоинкремента.
В итоге, DELETE более гибкий и безопасный для выборочного удаления, а TRUNCATE — быстрый способ полностью очистить таблицу.