Назад к вопросам
СБЕР
Junior — Middle
81
Какое отличие между командами DELETE и TRUNCATE при работе с таблицами в базе данных?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Основные отличия между командами DELETE и TRUNCATE в работе с таблицами базы данных:
-
DELETE удаляет строки из таблицы по условию (если указано), или все строки, если условие отсутствует. Это операция DML (Data Manipulation Language).
- Можно использовать WHERE для выборочного удаления.
- Удаление происходит построчно, что может быть медленнее.
- Операция логируется, можно откатить (ROLLBACK).
-
TRUNCATE удаляет все строки из таблицы целиком. Это операция DDL (Data Definition Language).
- Не поддерживает WHERE — удаляет все данные.
- Работает быстрее, так как не удаляет строки по одной, а сбрасывает данные.
- Обычно не логирует удаление каждой строки, поэтому откат может быть ограничен.
- Может сбросить счетчики автоинкремента.
Пример:
DELETE FROM users WHERE id = 10; -- удалит конкретную строку
TRUNCATE TABLE users; -- удалит все строки из таблицы
Выбор зависит от задачи: если нужно удалить все данные быстро — TRUNCATE, если выборочно — DELETE.