Что такое TRUNCATE

«Что такое TRUNCATE» — вопрос из категории SQL, который задают на 33% собеседований Аналитик Данных. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

TRUNCATE — это оператор SQL, который быстро удаляет все строки из таблицы, не записывая изменения построчно в журнал транзакций (в отличие от DELETE). Он работает быстрее, но имеет ограничения:

  • Нельзя использовать с условиями WHERE (удаляет всю таблицу сразу).
  • Не вызывает триггеры на удаление.
  • Сбрасывает автоинкрементные счётчики (в большинстве СУБД).
  • Требует прав на DROP таблицы.

Пример:

TRUNCATE TABLE employees;  -- Очищает таблицу employees

Важно: TRUNCATE нельзя откатить в некоторых СУБД (например, MySQL без поддержки транзакций для DDL).