Truncate (SQL) | это... Что такое Truncate (SQL)? (original) (raw)
Правильный заголовок этой статьи — TRUNCATE. Он показан некорректно из-за технических ограничений.
TRUNCATE — в языках, подобных SQL, DML-операция очистки всех строк в таблице. Логически эквивалентна операции 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 в некоторых СУБД (например, Microsoft SQL Server) запрещена для таблиц, содержащих внешние ключи других таблиц.
Вообще говоря, реализация оператора TRUNCATE может зависеть от выбора конкретной СУБД. Поэтому в каждом случае рекомендуется смотреть документацию выбранной системы.
Примечания
- ↑ Электронная документация по SQL Server 2008 (июль 2009 г.). Оператор TRUNCATE TABLE.. Microsoft. Архивировано из первоисточника 25 апреля 2012. Проверено 14 мая 2010 г.
- ↑ MySQL Documentation. TRUNCATE TABLE Syntax.. Архивировано из первоисточника 25 апреля 2012. Проверено 14 мая 2010 г.
- ↑ Oracle® Database SQL Reference. 10g Release 2 (10.2).. Oracle Corporation. Архивировано из первоисточника 25 апреля 2012. Проверено 14 мая 2010 г.
SQL | |
---|---|
Версии | SQL-86 • SQL-89 • SQL-92 • SQL:1999 • SQL:2003 • SQL:2008 |
Ключевые слова | Create • Delete • From • Having • Insert • Join • Merge • Null • Order by • Prepare • Select • Top • Truncate • Union • Update • Where |
Related | Эдгар Кодд • Реляционная база данных |
Базы данных | |
---|---|
Концепции | Модель данных • Реляционная (модель • алгебра • Нормальная форма • Ссылочная целостность • БД • СУБД) • Иерархическая модель • Сетевая (модель • СУБД) • Объектно-ориентированная (БД • СУБД) • Транзакция • Журнализация • Секционирование |
Объекты | Отношение (таблица) • Представление • Хранимая процедура • Триггер • Курсор • Индекс |
Ключи | Потенциальный • Первичный • Внешний • Естественный • Суррогатный (искусственный) • Суперключ |
SQL | SELECT • INSERT • UPDATE • MERGE • DELETE • TRUNCATE • JOIN • UNION • INTERSECT • EXCEPT • CREATE • ALTER • DROP • GRANT • COMMIT • ROLLBACK |
СУБД | IMS • DB2 • Informix • Oracle Database • Microsoft SQL Server • Adaptive Server Enterprise • Teradata Database • Firebird • PostgreSQL • MySQL • SQLite • Microsoft Access • Visual FoxPro • ЛИНТЕР • CouchDB • MongoDB |
Компоненты | Язык запросов • Оптимизатор запросов • План выполнения запроса • ODBC • ADO • ADO.NET • JDBC |