В чём разница: DELETE vs TRUNCATE?

Ответ

DELETE — построчное удаление с триггерами и WAL, можно откатить в транзакции. TRUNCATE — быстрая очистка целиком, сбрасывает счётчики автоинкремента.

Разбор: DELETE удаляет строки по одной, активирует триггеры, пишет каждую строку в журнал и откатывается внутри транзакции; TRUNCATE — операция уровня DDL, очищающая таблицу целиком быстро, не вызывающая построчных триггеров и сбрасывающая счётчики автоинкремента. Дистракторы меняют поведение местами (медленный TRUNCATE, откатываемость, триггеры) и путают DELETE с DROP — DELETE никогда не удаляет саму структуру таблицы.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться