> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по командам TRUNCATE

# TRUNCATE

Оператор `TRUNCATE` в ClickHouse позволяет быстро удалить все данные из таблицы или базы данных, сохранив их структуру.

## TRUNCATE TABLE

```sql theme={null}
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
```

<br />

| Параметр | Описание |
| - | - |
| `IF EXISTS` | Предотвращает ошибку, если таблица не существует. Если этот параметр опущен, запрос возвращает ошибку. |
| `db.name` | Необязательное имя базы данных. |
| `ON CLUSTER cluster` | Выполняет команду на указанном кластере. |
| `SYNC` | Делает усечение синхронным на репликах при использовании реплицируемых таблиц. Если этот параметр опущен, по умолчанию усечение выполняется асинхронно. |

Вы можете использовать настройку [alter\_sync](/ru/reference/settings/session-settings/alter#alter_sync), чтобы задать ожидание выполнения действий на репликах.

Вы можете указать, как долго (в секундах) ждать выполнения запросов `TRUNCATE` на неактивных репликах, с помощью настройки [replication\_wait\_for\_inactive\_replica\_timeout](/ru/reference/settings/session-settings/other#replication_wait_for_inactive_replica_timeout).

<Note>
  Если `alter_sync` установлена в `2` и некоторые реплики остаются неактивными дольше времени, указанного в настройке `replication_wait_for_inactive_replica_timeout`, генерируется исключение `UNFINISHED`. При `alter_sync = 3` ожидание неактивных реплик не выполняется, поэтому исключение не генерируется.
</Note>

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

* [`View`](/ru/reference/engines/table-engines/special/view)
* [`File`](/ru/reference/engines/table-engines/special/file)
* [`URL`](/ru/reference/engines/table-engines/special/url)
* [`Buffer`](/ru/reference/engines/table-engines/special/buffer)
* [`Null`](/ru/reference/engines/table-engines/special/null)

## TRUNCATE ВСЕХ ТАБЛИЦ

```sql theme={null}
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]
```

<br />

| Параметр | Описание |
| - | - |
| `ALL` | Удаляет данные из всех таблиц в базе данных. |
| `IF EXISTS` | Предотвращает ошибку, если база данных не существует. |
| `db` | Имя базы данных. |
| `LIKE \| ILIKE \| NOT LIKE '<pattern>'` | Фильтрует таблицы по шаблону. |
| `ON CLUSTER cluster` | Выполняет команду на всём кластере. |

Удаляет все данные из всех таблиц в базе данных.

## TRUNCATE DATABASE

```sql theme={null}
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]
```

<br />

| Параметр | Описание |
| - | - |
| `IF EXISTS` | Предотвращает ошибку, если база данных не существует. |
| `db` | Имя базы данных. |
| `ON CLUSTER cluster` | Выполняет команду на всём указанном кластере. |

Удаляет все таблицы из базы данных, но сохраняет саму базу данных. Если предложение `IF EXISTS` не указано, запрос вернёт ошибку, если база данных не существует.

<Note>
  `TRUNCATE DATABASE` не поддерживается для баз данных `Replicated`. Вместо этого просто выполните `DROP` и `CREATE` базы данных.
</Note>
