Перейти к основному содержанию
Перейти к основному содержанию

Очищение таблицы

Очищение (TRUNCATE) позволяет удалить данные из таблицы или базы данных, сохранив при этом саму таблицу или базу данных. Это облегчённая операция, которую нельзя отменить.

Оператор TRUNCATE

Оператор TRUNCATE в ClickHouse используется для быстрого удаления всех данных из таблицы или базы данных при этом их структура сохраняется.

TRUNCATE TABLE

TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]

ParameterDescription
IF EXISTSПредотвращает ошибку, если таблица не существует. Если параметр опущен, запрос завершится с ошибкой.
db.nameНеобязательное имя базы данных.
ON CLUSTER clusterВыполняет команду на указанном кластере.
SYNCДелает операцию TRUNCATE синхронной между репликами при использовании реплицируемых таблиц. Если параметр опущен, операция выполняется асинхронно по умолчанию.

Вы можете использовать настройку alter_sync, чтобы включить ожидание выполнения операций на репликах.

Вы можете указать, как долго (в секундах) ожидать выполнения запросов TRUNCATE неактивными репликами с помощью настройки replication_wait_for_inactive_replica_timeout.

:::note
Если alter_sync имеет значение 2, и некоторые реплики остаются неактивными дольше времени, заданного настройкой replication_wait_for_inactive_replica_timeout, генерируется исключение UNFINISHED. :::

Запрос TRUNCATE TABLE не поддерживается для следующих движков таблиц:

Очистка всех таблиц

TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]

ПараметрОписание
ALLУдаляет данные из всех таблиц базы данных.
IF EXISTSПредотвращает ошибку, если база данных не существует.
dbИмя базы данных.
LIKE | ILIKE | NOT LIKE '<pattern>'Фильтрует таблицы по заданному шаблону.
ON CLUSTER clusterВыполняет команду во всём кластере.

Удаляет все данные из всех таблиц базы данных.

TRUNCATE DATABASE

TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]

ParameterDescription
IF EXISTSПредотвращает ошибку, если база данных не существует.
dbИмя базы данных.
ON CLUSTER clusterВыполняет команду на указанном кластере.

Удаляет все таблицы из базы данных, но сохраняет саму базу данных. Если предложение IF EXISTS опущено, запрос возвращает ошибку, если база данных не существует.

Примечание

TRUNCATE DATABASE не поддерживается для Replicated баз данных. Вместо этого просто удалите и заново создайте базу данных с помощью команд DROP и CREATE.