Truncate (SQL)

Truncate (SQL)

In SQL, the TRUNCATE statement removes all the data from a table. The TRUNCATE statement is not actually a part of the SQL standard, but many relational database management systems implement it. [ [http://dev.mysql.com/doc/refman/6.0/en/truncate.html MySQL 6.0 Reference Manual, 11.2.10 TRUNCATE Syntax] ] [ [http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_10007.htm Oracle® Database SQL Language Reference, TRUNCATE TABLE] ] [ [http://www.postgresql.org/docs/current/static/sql-truncate.html PostgreSQL Documentation, SQL Commands, TRUNCATE] ] A TRUNCATE my_table; it is equivalent in function to a DELETE FROM my_table; statement. However, on some systems, it is implemented differently. For example, in Oracle the truncate statement implies a commit and cannot be undone.

The syntax for issuing a truncate command on a table could be implemented as:Truncate Table [schema] [.] ;

TRUNCATE TABLE is a statement that quickly deletes all records in a table by deallocating the data pages used by the table. This reduces the resource overhead of logging the deletions, as well as the number of locks acquired; however, it bypasses the transaction log, and the only record of the truncation in the transaction logs is the page deallocation. Records removed by the TRUNCATE TABLE statement cannot be restored. Notable exception from this rule is PostgreSQL's implementation, where TRUNCATE is transactional - old version of the whole table is kept until COMMIT or ROLLBACK is issued. You cannot specify a WHERE clause in a TRUNCATE TABLE statement-it is all or nothing. The advantage to using TRUNCATE TABLE is that in addition to removing all rows from the table it resets the IDENTITY back to the SEED, and the deallocated pages are returned to the system for use in other areas.

In addition, TRUNCATE TABLE statements cannot be used for tables involved in replication or log shipping, since both depend on the transaction log to keep remote databases consistent.TRUNCATE TABLE cannot be used when a foreign key references the table to be truncated, since TRUNCATE statements do not fire triggers. This could result in inconsistent data because ON DELETE/UPDATE triggers would not fire. If all table rows need to be deleted and there is a foreign key referencing the table, you must drop the index and recreate it. If a TRUNCATE TABLE statement is issued against a table that has foreign key references, the following error is returned:

e.g.Truncate Table [schema] [.] ;

Notes


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Truncate (SQL) — Правильный заголовок этой статьи  TRUNCATE. Он показан некорректно из за технических ограничений. TRUNCATE  в языках, подобных SQL, DML операция очистки всех строк в таблице. Логически эквивалентна операции DELETE без оператора WHERE,… …   Википедия

  • SQL — Desarrollador(es) IBM ISO/IEC 9075 1:2008 Información general Paradigma Multiparadigma …   Wikipedia Español

  • SQL — Класс языка: Мультипарадигмальный Появился в: 1974 Автор(ы): Дональд Чэмбэрлин Рэймонд Бойс Релиз: SQL:2008 (2008) Типизация данных …   Википедия

  • SQL-92 — SQL 92  третья версия языка запросов к базам данных SQL. В отличие от стандарта SQL 89, третья версия стала весьма существенным обновлением языка. За исключением некоторых мелких противоречий стандарт SQL 89 практически полностью совместим… …   Википедия

  • SQL:2008 — SQL:2008  шестая версия (ревизия) языка запросов баз данных SQL. Содержание 1 Общие сведения 2 Новшества 3 …   Википедия

  • SQL — This article is about the database language. For the airport with IATA code SQL, see San Carlos Airport. SQL Paradigm(s) Multi paradigm Appeared in 1974 Designed by Donald D. Chamberlin Raymond F. Boyce Developer …   Wikipedia

  • SQL — Structured Query Language SQL Apparu en 1974 Auteur …   Wikipédia en Français

  • Delete (SQL) — У этого термина существуют и другие значения, см. Delete. DELETE  в языках, подобных SQL, DML операция удаления записей из таблицы. Критерий отбора записей для удаления определяется выражением where. В случае, если критерий отбора не… …   Википедия

  • Insert (SQL) — У этого термина существуют и другие значения, см. Insert. Правильный заголовок этой статьи  INSERT. Он показан некорректно из за технических ограничений. INSERT  оператор языка SQL, который позволяет добавить строки в таблицу, заполняя… …   Википедия

  • Select (SQL) — Правильный заголовок этой статьи  SELECT (SQL). Он показан некорректно из за технических ограничений. SELECT (англ., означает «выбрать»)  оператор DML языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”