Sobes.tech
Junior — Middle
107

V čem spočívají rozdíly v důsledcích použití příkazů DELETE a TRUNCATE při odstraňování dat z tabulky v databázi?

Společnosti byly požádány
СБЕРСБЕР
ООО Ренью

Odpověď od AI

sobes.tech AI

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

  • DELETE:

    • Удаляет строки из таблицы по условию (если указано), или все строки, если условие отсутствует.
    • Операция логируется построчно, что позволяет откатить изменения (транзакции).
    • Триггеры на удаление (DELETE triggers) срабатывают.
    • После удаления можно использовать WHERE для выборочного удаления.
  • TRUNCATE:

    • Удаляет все строки из таблицы целиком.
    • Обычно работает быстрее, так как не логирует удаление каждой строки, а просто освобождает страницы данных.
    • Не срабатывают триггеры на удаление.
    • Не поддерживает условие WHERE.
    • Может сбрасывать счетчики автоинкремента.

В итоге, DELETE более гибкий и безопасный для выборочного удаления, а TRUNCATE — быстрый способ полностью очистить таблицу.