Перейти к основному содержимому
Перейти к основному содержимому

Обрезать таблицу

Truncate позволяет удалить данные в таблице или базе данных, при этом сохраняя их существование. Это легковесная операция, которую нельзя отменить.

Удаление данных с помощью TRUNCATE

Команда 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.

примечание

Если alter_sync установлено в 2 и некоторые реплики неактивны более времени, указанного настройкой replication_wait_for_inactive_replica_timeout, то возникает исключение UNFINISHED.

Запрос TRUNCATE TABLE не поддерживается для следующих движков таблиц:

TRUNCATE ALL TABLES

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 опущен, запрос возвращает ошибку, если база данных не существует.

примечание

TRUNCATE DATABASE не поддерживается для Replicated баз данных. Вместо этого просто используйте DROP и CREATE для базы данных.