Найти в Дзене
ГАУС IT

Отличия DELETE от TRUNCATE

Приветствую всех в этой статье мы познакомимся с оператором TRUNCATE и посмотрим на отличия DELETE от TRUNCATE Синтаксис Как и во всех предыдущих статьях начнем с синтаксиса: TRUNCATE TABLE table_name Оператор SQL TRUNCATE служит для очистки таблицы от всех данных. Оператор TRUNCATE аналогичен оператору DELETE применяемом без оператора WHERE. Основные отличия Реализация оператора SQL TRUNCATE различна для каждой СУБД, поэтому рекомендуется обращаться к документации используемой системы Рекомендации Использовать оператор TRUNCATE для очистки временных таблиц, которые вы используете для промежуточных расчетов. Если статья была Вам полезна, ставьте пальцы вверх и подписывайтесь. Оставляйте свои пожелания и вопросы в комментариях, с удовольствием отвечу. #it #sql #обучение #курс #программирование
Оглавление

Приветствую всех в этой статье мы познакомимся с оператором TRUNCATE и посмотрим на отличия DELETE от TRUNCATE

Синтаксис

Как и во всех предыдущих статьях начнем с синтаксиса:

TRUNCATE TABLE table_name

Оператор SQL TRUNCATE служит для очистки таблицы от всех данных. Оператор TRUNCATE аналогичен оператору DELETE применяемом без оператора WHERE.

Основные отличия

  • Эта операция удаляет и воссоздает таблицу, что намного быстрее, чем поочередное удаление строк.
  • Операция является не транзакционной; если одновременно выполняется транзакция или активная блокировка таблицы, то можно получить ошибку, потому что DELETE осуществляет блокировку построчно, оператор TRUNCATE по всей странице целиком. Вследствие этого, оператор TRUNCATE не возвращает никакого значения, DELETE же, возвращает количество удаленных строк.
  • Оператор TRUNCATE не ведет запись об удаленных данных в журнал событий.
  • Пока существует корректный файл `table_name.frm', таблицу можно воссоздать с его с помощью, даже если файлы данных или индексов повреждены.
  • После применения оператора DELETE возможно сделать откат операции и восстановить удаленные данные (команда ROLLBACK). При применении оператора SQL TRUNCATE этого сделать нельзя, однако в СУБД MS SQL Server, оператор может применяться в транзакциях.

Реализация оператора SQL TRUNCATE различна для каждой СУБД, поэтому рекомендуется обращаться к документации используемой системы

Рекомендации

Использовать оператор TRUNCATE для очистки временных таблиц, которые вы используете для промежуточных расчетов.

Если статья была Вам полезна, ставьте пальцы вверх и подписывайтесь. Оставляйте свои пожелания и вопросы в комментариях, с удовольствием отвечу.

#it #sql #обучение #курс #программирование