В этом учебном материале вы узнаете, как использовать оператор Oracle TRUNCATE TABLE с синтаксисом, примерами и практическими упражнениями.
Описание
Оператор TRUNCATE TABLE используется для удаления всех записей из таблицы в Oracle. Он выполняет ту же функцию что и DELETE, только без условий WHERE.
Предупреждение: Если вы очистите таблицу с помощью оператора TRUNCATE TABLE, то ее откат невозможен.
Синтаксис
Синтаксис для оператора TRUNCATE TABLE в Oracle/PLSQL:
[ PRESERVE MATERIALIZED VIEW LOG | PURGE MATERIALIZED VIEW LOG ]
[ DROP STORAGE | REUSE STORAGE ] ;
Параметры или аргументы
schema_name
Необязательный. Если указано, то это имя схемы к которой принадлежит таблица.
table_name
Таблица, которую вы хотите очистить.
PRESERVE MATERIALIZED VIEW LOG
Необязательный. Если указано, то materialized view log будет сохранено, когда таблица очищается. Это поведение по умолчанию.
PURGE MATERIALIZED VIEW LOG
Необязательный. Если указано, то materialized view log будет очищен, когда таблица очищается.
DROP STORAGE
Необязательный. Если указано, всё хранилище очищающихся строк будет высвобождено, за исключением пространства, которое было выделено в MINEXTENTS. Это поведение по умолчанию.
REUSE STORAGE
Необязательный. Если указано, всё хранилище очищающихся строк останется распределенным в таблице.
Пример
В Oracle очищение таблицы является быстрым способом, чтобы очистить записи из таблицы, если вам не нужно беспокоиться об откате. Одной из причин является то, что, когда таблица очищается, это не влияет на какие-либо из индексов, триггеров или зависимостей таблицы. Очищение таблицы также намного проще, чем удаление таблицы и ее воссоздания.
Рассмотрим пример того, как использовать оператор TABLE TRUNCATE в Oracle/PLSQL.
Например:
1 |
TRUNCATE TABLE customers; |
Этот пример очистит таблицу customers, и удалит все записи из этой таблицы.
Было бы равносильно следующему предложению DELETE в Oracle:
1 |
DELETE FROM customers; |
Оба эти примера приведут к тому, что все данные из таблицы customers удаляется. Основное различие между ними состоит в том, что вы можете выполнить откат DELETE если выберите, но вы не сможете выполнить откат оператора TRUNCATE TABLE.
Рассмотрим еще один пример, с префиксом таблицы - именем схемы.
Например:
1 |
TRUNCATE TABLE totn.suppliers; |
Этот пример очистит таблицу с именем suppliers в схеме под названием totn. Перед тем, как очистить таблицу в другой схеме, вы должны иметь необходимые привилегии, такие как DROP ANY TABLE.