Sobes.tech
Middle
23

В чем разница DELETE и TRUNCATE в SQL?

Companies where asked
ДомкликДомклик
ЛеруаМерлен

Answer from AI

sobes.tech AI

Основные различия между DELETE и TRUNCATE в SQL:

  • DELETE удаляет строки из таблицы построчно и может иметь условие WHERE. Операция логируется, что позволяет откатить изменения (ROLLBACK).
  • TRUNCATE удаляет все строки из таблицы целиком, без возможности указать условие. Это более быстрая операция, так как не логирует удаление каждой строки отдельно, а сбрасывает данные страницы.

Пример:

DELETE FROM users WHERE age < 18; -- удалит только пользователей младше 18
TRUNCATE TABLE users; -- удалит всех пользователей сразу

Также TRUNCATE обычно сбрасывает счётчики автоинкремента, а DELETE — нет.