Оператор TRUNCATE
Оператор TRUNCATE в ClickHouse используется для быстрого удаления всех данных из таблицы или базы данных при этом их структура сохраняется.
TRUNCATE TABLE
| Parameter | Description |
|---|---|
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 не поддерживается для следующих движков таблиц:
Очистка всех таблиц
| Параметр | Описание |
|---|---|
ALL | Удаляет данные из всех таблиц базы данных. |
IF EXISTS | Предотвращает ошибку, если база данных не существует. |
db | Имя базы данных. |
LIKE | ILIKE | NOT LIKE '<pattern>' | Фильтрует таблицы по заданному шаблону. |
ON CLUSTER cluster | Выполняет команду во всём кластере. |
Удаляет все данные из всех таблиц базы данных.
TRUNCATE DATABASE
| Parameter | Description |
|---|---|
IF EXISTS | Предотвращает ошибку, если база данных не существует. |
db | Имя базы данных. |
ON CLUSTER cluster | Выполняет команду на указанном кластере. |
Удаляет все таблицы из базы данных, но сохраняет саму базу данных. Если предложение IF EXISTS опущено, запрос возвращает ошибку, если база данных не существует.
TRUNCATE DATABASE не поддерживается для Replicated баз данных. Вместо этого просто удалите и заново создайте базу данных с помощью команд DROP и CREATE.