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