Обрезать таблицу
Truncate
позволяет удалить данные в таблице или базе данных, при этом сохраняя их существование. Это легковесная операция, которую нельзя отменить.
Удаление данных с помощью TRUNCATE
Команда TRUNCATE
в ClickHouse используется для быстрого удаления всех данных из таблицы или базы данных при сохранении их структуры.
TRUNCATE TABLE
Параметр | Описание |
---|---|
IF EXISTS | Предотвращает ошибку, если таблица не существует. Если опущен, запрос возвращает ошибку. |
db.name | Необязательное имя базы данных. |
ON CLUSTER cluster | Выполняет команду на указанном кластере. |
SYNC | Делает удаление синхронным на репликах при использовании реплицированных таблиц. Если опущено, удаление происходит асинхронно по умолчанию. |
Вы можете использовать настройку alter_sync, чтобы настроить ожидание выполнения действий на репликах.
Вы можете указать, как долго (в секундах) ждать неактивные реплики для выполнения запросов TRUNCATE
с помощью настройки replication_wait_for_inactive_replica_timeout.
Если alter_sync
установлено в 2
и некоторые реплики неактивны более времени, указанного настройкой replication_wait_for_inactive_replica_timeout
, то возникает исключение UNFINISHED
.
Запрос TRUNCATE TABLE
не поддерживается для следующих движков таблиц:
TRUNCATE ALL TABLES
Параметр | Описание |
---|---|
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
для базы данных.