Jump to content

Усечь (SQL)

В SQL TRUNCATE TABLE Оператор — это операция языка манипулирования данными (DML), которая удаляет все строки таблицы, не вызывая триггерного действия. [1] В результате этой операции все данные быстро удаляются из таблицы , обычно в обход ряда механизмов обеспечения целостности. Он был официально представлен в стандарте SQL:2008 как дополнительная функция F200, «оператор TRUNCATE TABLE».

TRUNCATE TABLE удаляет все строки из таблицы, но структура таблицы, ее столбцы, ограничения, индексы и т. д. сохраняются. Чтобы удалить определение таблицы в дополнение к ее данным, используйте оператор DROP TABLE .

The TRUNCATE TABLE mytable утверждение логически (хотя и не физически) эквивалентно DELETE FROM mytable заявление (без WHERE пункт). Следующие характеристики отличают TRUNCATE TABLE от DELETE:

  • В данных Oracle базе TRUNCATE неявно предшествует и сопровождается операцией фиксации . (Это также может иметь место в MySQL при использовании механизма хранения транзакций.)
  • Обычно TRUNCATE TABLE быстро удаляет все записи в таблице, освобождая страницы данных, используемые таблицей. Это снижает затраты ресурсов на регистрацию удалений, а также количество блокировок полученных . Записи, удаленные таким образом, невозможно восстановить в ходе операции отката. Двумя заметными исключениями из этого правила являются реализации в PostgreSQL и Microsoft SQL Server , обе из которых позволяют TRUNCATE TABLE операторы, которые необходимо зафиксировать или откатить транзакционно.
  • Невозможно указать WHERE пункт в TRUNCATE TABLE заявление.
  • TRUNCATE TABLE не может использоваться, когда внешний ключ ссылается на таблицу, подлежащую усечению, поскольку TRUNCATE TABLE операторы не запускают триггеры . Это может привести к противоречивым данным, поскольку ON DELETE/ ON UPDATE триггеры не сработали.
  • В некоторых компьютерных системах TRUNCATE TABLE сбрасывает счетчик столбца Identity идентификатора обратно в начальное значение .
  • В Microsoft SQL Server 2000 и более поздних версиях в режиме полного восстановления каждое изменение в базе данных протоколируется, поэтому TRUNCATE TABLE Операторы можно использовать для таблиц, участвующих в доставке журналов . [2]
  1. ^ «ISO/IEC 9075 Языки баз данных SQL» . iso.org . Проверено 4 июня 2023 г.
  2. ^ «Описание влияния нерегистрируемых и минимально протоколируемых операций на резервное копирование журнала транзакций и процесс восстановления в SQL Server» . Майкрософт. Декабрь 2005 г.


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e5d555659a3136b208acd6582c03c47a__1700842680
URL1:https://arc.ask3.ru/arc/aa/e5/7a/e5d555659a3136b208acd6582c03c47a.html
Заголовок, (Title) документа по адресу, URL1:
Truncate (SQL) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)