Очищение таблицы
Очищение (TRUNCATE) позволяет удалить данные из таблицы или базы данных, сохранив при этом саму таблицу или базу данных. Это облегчённая операция, которую нельзя отменить.
Команды TRUNCATE
Команда TRUNCATE в ClickHouse используется для быстрого удаления всех данных из таблицы или базы данных при сохранении их структуры.
TRUNCATE TABLE
| Параметр | Описание |
|---|---|
IF EXISTS | Предотвращает ошибку, если таблица не существует. Если параметр опущен, запрос возвращает ошибку. |
db.name | Необязательное имя базы данных. |
ON CLUSTER cluster | Выполняет команду на указанном кластере. |
SYNC | Делает операцию TRUNCATE синхронной между репликами при использовании реплицируемых таблиц. Если параметр опущен, по умолчанию операция выполняется асинхронно. |
Вы можете использовать настройку alter_sync для ожидания выполнения действий на репликах.
Вы можете указать, как долго (в секундах) ждать выполнения запросов TRUNCATE неактивными репликами с помощью настройки replication_wait_for_inactive_replica_timeout.
Если параметр alter_sync установлен в значение 2 и некоторые реплики неактивны дольше времени, указанного в настройке replication_wait_for_inactive_replica_timeout, будет выброшено исключение UNFINISHED.
Запрос TRUNCATE TABLE не поддерживается для следующих движков таблиц:
TRUNCATE ALL TABLES
| Parameter | Description |
|---|---|
ALL | Удаляет данные из всех таблиц базы данных. |
IF EXISTS | Предотвращает ошибку, если база данных не существует. |
db | Имя базы данных. |
LIKE | ILIKE | NOT LIKE '<pattern>' | Фильтрует таблицы по шаблону. |
ON CLUSTER cluster | Выполняет команду на всём кластере. |
Удаляет все данные из всех таблиц базы данных.
TRUNCATE DATABASE
| Параметр | Описание |
|---|---|
IF EXISTS | Предотвращает возникновение ошибки, если база данных не существует. |
db | Имя базы данных. |
ON CLUSTER cluster | Выполняет команду во всём указанном кластере. |
Удаляет все таблицы из базы данных, но сохраняет саму базу данных. Если опустить условие IF EXISTS, запрос вернёт ошибку, если база данных не существует.
TRUNCATE DATABASE не поддерживается для баз данных Replicated. Вместо этого просто выполните DROP и CREATE для базы данных.