Truncate (SQL)

Поделись знанием:
Перейти к: навигация, поиск

TRUNCATE — в языках, подобных SQL, DDL-операция очистки всех строк в таблице. Логически схожа с операцией DELETE без оператора WHERE, но в ситуациях на практике имеет отличия.[1][2][3].



Синтаксис

Общий синтаксис команды:

TRUNCATE TABLE <Имя Таблицы>

Последствием выполнения такой команды является полное удаление всех строк таблицы <Имя Таблицы>.

Отличия от оператора DELETE

Основные отличия операторов TRUNCATE и DELETE, которые могут присутствовать в различных реализациях СУБД:

  • Операция TRUNCATE не записывает в журнал событий удаление отдельных строк. Вследствие чего не может активировать триггеры.
  • После операции TRUNCATE для некоторых СУБД (например, Oracle) следует неявная операция COMMIT. Поэтому удаленные в таблице записи нельзя восстановить операцией ROLLBACK. Но существуют и СУБД, в которых операция TRUNCATE может участвовать в транзакциях, например, Microsoft SQL Server.
  • Операция DELETE блокирует каждую строку, а TRUNCATE — всю таблицу.
  • Операция TRUNCATE не возвращает какого-то осмысленного значения (обычно возвращает 0) в отличие от DELETE, которая возвращает число удаленных строк.
  • Операция TRUNCATE в некоторых СУБД (например, MySQL или Microsoft SQL Server), сбрасывает значение счетчиков (для полей с AUTOINCREMENT / IDENTITY).
  • Операция TRUNCATE в некоторых СУБД (например, MySQL или Microsoft SQL Server) запрещена для таблиц, содержащих внешние ключи других таблиц.

Вообще говоря, реализация оператора TRUNCATE может зависеть от выбора конкретной СУБД. Поэтому в каждом случае необходимо изучать документацию выбранной системы.

Напишите отзыв о статье "Truncate (SQL)"

Примечания

  1. [msdn.microsoft.com/ru-ru/library/ms177570.aspx Электронная документация по SQL Server. Оператор TRUNCATE TABLE.]. Microsoft. Проверено 12 октября 2014. [www.webcitation.org/67C50DqiD Архивировано из первоисточника 25 апреля 2012].
  2. [dev.mysql.com/doc/refman/5.0/en/truncate-table.html MySQL Documentation. TRUNCATE TABLE Syntax.]. Проверено 14 мая 2010 г. [www.webcitation.org/67C50uVpL Архивировано из первоисточника 25 апреля 2012].
  3. [download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10006.htm Oracle® Database SQL Reference. 10g Release 2 (10.2).]. Oracle Corporation. Проверено 14 мая 2010 г. [www.webcitation.org/67C51SV1o Архивировано из первоисточника 25 апреля 2012].


Отрывок, характеризующий Truncate (SQL)

Вернувшись в полк и передав командиру, в каком положении находилось дело Денисова, Ростов с письмом к государю поехал в Тильзит.
13 го июня, французский и русский императоры съехались в Тильзите. Борис Друбецкой просил важное лицо, при котором он состоял, о том, чтобы быть причислену к свите, назначенной состоять в Тильзите.
– Je voudrais voir le grand homme, [Я желал бы видеть великого человека,] – сказал он, говоря про Наполеона, которого он до сих пор всегда, как и все, называл Буонапарте.
– Vous parlez de Buonaparte? [Вы говорите про Буонапарта?] – сказал ему улыбаясь генерал.
Борис вопросительно посмотрел на своего генерала и тотчас же понял, что это было шуточное испытание.
– Mon prince, je parle de l'empereur Napoleon, [Князь, я говорю об императоре Наполеоне,] – отвечал он. Генерал с улыбкой потрепал его по плечу.
– Ты далеко пойдешь, – сказал он ему и взял с собою.
Борис в числе немногих был на Немане в день свидания императоров; он видел плоты с вензелями, проезд Наполеона по тому берегу мимо французской гвардии, видел задумчивое лицо императора Александра, в то время как он молча сидел в корчме на берегу Немана, ожидая прибытия Наполеона; видел, как оба императора сели в лодки и как Наполеон, приставши прежде к плоту, быстрыми шагами пошел вперед и, встречая Александра, подал ему руку, и как оба скрылись в павильоне. Со времени своего вступления в высшие миры, Борис сделал себе привычку внимательно наблюдать то, что происходило вокруг него и записывать. Во время свидания в Тильзите он расспрашивал об именах тех лиц, которые приехали с Наполеоном, о мундирах, которые были на них надеты, и внимательно прислушивался к словам, которые были сказаны важными лицами. В то самое время, как императоры вошли в павильон, он посмотрел на часы и не забыл посмотреть опять в то время, когда Александр вышел из павильона. Свидание продолжалось час и пятьдесят три минуты: он так и записал это в тот вечер в числе других фактов, которые, он полагал, имели историческое значение. Так как свита императора была очень небольшая, то для человека, дорожащего успехом по службе, находиться в Тильзите во время свидания императоров было делом очень важным, и Борис, попав в Тильзит, чувствовал, что с этого времени положение его совершенно утвердилось. Его не только знали, но к нему пригляделись и привыкли. Два раза он исполнял поручения к самому государю, так что государь знал его в лицо, и все приближенные не только не дичились его, как прежде, считая за новое лицо, но удивились бы, ежели бы его не было.