TRUNCATE удаляет данные из таблицы или базы данных, сохраняя при этом саму таблицу или базу данных. Это быстрая операция, которую нельзя отменить.
Оператор TRUNCATE в ClickHouse используется для быстрого удаления всех данных из таблицы или базы данных с сохранением их структуры.
TRUNCATE TABLE
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.
Запрос 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]| Parameter | Описание |
|---|---|
IF EXISTS |
Предотвращает ошибку, если база данных не существует. |
db |
Имя базы данных. |
ON CLUSTER cluster |
Выполняет команду во всём указанном кластере. |
Удаляет все таблицы из базы данных, но сохраняет саму базу данных. Если предложение IF EXISTS опущено, запрос вернёт ошибку, если база данных не существует.