Sobes.tech
Назад к вопросам
Middle
10

В чём разница между TRUNCATE и DELETE?

Компании, где спрашивали
flank bank

Ответ от нейросети

sobes.tech AI

Разница между TRUNCATE и DELETE:

  • DELETE — это оператор SQL, который удаляет строки из таблицы по условию (если условие не указано, удаляет все строки). Он логгируется построчно, что позволяет откатить изменения (rollback). При удалении с помощью DELETE срабатывают триггеры.

  • TRUNCATE — это команда, которая быстро удаляет все строки из таблицы, фактически сбрасывая её. TRUNCATE не логгирует удаление каждой строки, а работает на уровне страниц данных, поэтому выполняется быстрее. Обычно TRUNCATE нельзя использовать с условием, и он не вызывает триггеры. Также TRUNCATE часто не может быть откатан в некоторых СУБД.

Пример:

DELETE FROM employees WHERE department = 'Sales'; -- удалит только сотрудников отдела продаж
TRUNCATE TABLE employees; -- удалит всех сотрудников быстро и полностью