TRUNCATE удаляет данные из таблицы или базы данных, сохраняя при этом саму таблицу или базу данных. Это быстрая операция, которую нельзя отменить.
Оператор TRUNCATE в ClickHouse используется для быстрого удаления всех данных из таблицы или базы данных с сохранением их структуры.
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
| Parameter | Описание |
|---|
IF EXISTS | Предотвращает ошибку, если таблица не существует. Если этот параметр не указан, запрос возвращает ошибку. |
db.name | Необязательное имя базы данных. |
ON CLUSTER cluster | Выполняет команду на всём указанном кластере. |
SYNC | Делает операцию усечения синхронной на всех репликах при использовании реплицируемых таблиц. Если этот параметр не указан, по умолчанию усечение выполняется асинхронно. |
Вы можете использовать настройку alter_sync, чтобы настроить ожидание выполнения действий на репликах.
С помощью настройки replication_wait_for_inactive_replica_timeout можно указать, как долго (в секундах) ждать, пока неактивные реплики выполнят запросы TRUNCATE.
Если для 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 [IF EXISTS] db [ON CLUSTER cluster]
| Parameter | Описание |
|---|
IF EXISTS | Предотвращает ошибку, если база данных не существует. |
db | Имя базы данных. |
ON CLUSTER cluster | Выполняет команду во всём указанном кластере. |
Удаляет все таблицы из базы данных, но сохраняет саму базу данных. Если предложение IF EXISTS опущено, запрос вернёт ошибку, если база данных не существует.
TRUNCATE DATABASE не поддерживается для баз данных Replicated. Вместо этого просто выполните DROP и CREATE базы данных.
Последнее изменение 10 июня 2026 г.