Інструкція truncate table - sql програмування
Інструкція TRUNCATE TABLE - це інструкція, яка не входить в стандарт ANSI, яка незворотньо видаляє всі рядки з таблиці без занесення в журнал видалення окремих рядків. Ця інструкція швидко видаляє всі записи з таблиці, не впливаючи на структуру таблиці і не займаючи або займаючи дуже мало місця в журналах відкату або журналах транзакцій. Однак, оскільки дана операція не журналіруется, інструкцію TRUNCATE TABLE можна скасувати після виконання.
Стандартний синтаксис de facto
Офіційно інструкція TRUNCATE TABLE не є стандартною командою ANSI. Однак є стандарт, який підтримують платформи і який має такий вигляд.
TRUNCATE TABLE ім'я_таблиці
Ключові слова
Ім'я будь-якої таблиці в поточній базі даних або схемою.
Загальні правила
Інструкція TRUNCATE TABLE надає той же дію, що і інструкція DELETE без пропозиції WHERE. Обидві інструкції видаляють всі рядки в цій таблиці. Однак є дві важливі відмінності. Інструкція TRUNCATE TABLE працює швидше і не журналіруется, що означає неможливість відкату в разі помилки. Крім того, інструкція TRUNCATE TABLE НЕ активує тригери, в той час як DELETE активує їх.
Поради та хитрості програмування
Оскільки інструкція TRUNCATE TABLE заношуваності в журнал, зазвичай вона використовується в базах даних, що знаходяться в процесі розробки. У робочих базах даних її потрібно застосовувати обережно!
TABLE в збережені процедури або функції робочого додатки, оскільки --- більшість платформ НЕ журіаліруют цю операцію і не зможуть скасувати неправильно подану інструкцію.
Команда TRUNCATE TABLE нічого очікувати виконано, якщо інший користувач заблокував таблицю в той момент, коли команда була подана. Інструкція TRUNCATE TABLE НЕ активізує тригери, але буде працювати і при їх наявності. Однак інструкція не спрацює, якщо в даній таблиці є обмеження FOREIGN KEY.
Версія 8 DB2 не підтримує інструкцію TRUNCATE TABLE.
Платформа MySQL, починаючи з версії 3.23, підтримує базовий формат інструкції TRUNCATE TABLE.
TRUNCATE TABLE ім'я
Платформа MySQL отримує потрібний результат шляхом видалення і повторного створення зазначеної таблиці. Оскільки MySQL зберігає кожну таблицю в файлі з ім'ям ім'я. / Гт, то для правильної роботи команди файл з цим ім'ям має існувати в директорії, що містить файли бази даних.
Наприклад, така інструкція видалить всі дані з таблиці publishers.
TRUNCATE TABLE publishers
Платформа Oracle дозволяє видалити таблицю або індексований кластер (але не хеш-кластер). Синтаксис наступний.
Інструкція TRUNCATE TABLE вперше з'явилася на платформі Oracle, і інші виробники незабаром ввели підтримку цієї інструкції. У Oracle до цієї інструкції були додані додаткові можливості, які часто підтримуються іншими виробниками.
Синтаксичні елементи в Oracle наступні
Вказується, буде віддалятися індексований кластер або таблиця. Індексований кластер - це конструкція, яка зберігає пов'язані рядки двох таблиць фізично на диску поруч один з одним для прискорення з'єднання шляхом зменшення навантаження на канали введення-виведення. При видаленні індексованого кластера не можна використовувати такі опції, як SNAPSHOT LOG і STORAGE.
PRESERVE MA TERIALIZED VIEWLOG
При видаленні основної таблиці зберігаються всі журнали-знімки.
PURGE MATERIALIZED VIEW LOG Видаліть всі журнали-знімки.
Дисковий простір, що звільнився при видаленні рядів, вивільняється. REUSE STORAGE
Дисковий простір, що звільнився при видаленні рядів, залишається закріпленим за даною таблицею. наприклад:
TRUNCATE TABLE scon. authors
PRESERVE SNAPSHOT LOG REUSE STORAGE
У цьому прикладі видаляються всі записи в таблиці scott.authors. Зберігається існуючий журнал-знімок, і таблиця може повторно використовувати закріплене за нею місце, що звільнилося.
PostgreSQL
Платформа PostgreSQL мало відрізняється від сформованого промислового стандарту. Було додано ключове слово TABLE.
TRUNCATE [TABLET ім'я
Ключове слово TABLE є необов'язковим. Наприклад, наступна команда видаляє всі записи з таблиці authors бази даних PostgreSQL.
SQL Server
Платформа SQL Server підтримує сформований de facto промисловий стандарт. Дивіться також
Додаткова інформація по темі
Синтаксис при використанні інструкції CREATE / ALTER TABLE, розширення і доповнення
Що таке існстуркція CREATE ROLE, і особливості синтаксису при її використанні і ключові слова
Правила і методи використання інструкції UPDATE в базах даних на різних платформах
Особливості використання інструкції CREATE SCHEMA, основний синтаксис при використанні