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

> Documentation des instructions TRUNCATE

# Instructions TRUNCATE

Dans ClickHouse, l'instruction `TRUNCATE` permet de supprimer rapidement toutes les données d'une table ou d'une base de données tout en en préservant la structure.

<div id="truncate-table">
  ## TRUNCATE TABLE
</div>

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

<br />

| Parameter            | Description                                                                                                                                                              |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `IF EXISTS`          | Empêche une erreur si la table n'existe pas. Si elle est omise, la requête renvoie une erreur.                                                                           |
| `db.name`            | Nom de base de données facultatif.                                                                                                                                       |
| `ON CLUSTER cluster` | Exécute la commande sur l’ensemble d’un cluster spécifié.                                                                                                                |
| `SYNC`               | Rend la troncature synchrone sur les répliques lors de l'utilisation de tables répliquées. Si elle est omise, la troncature s'effectue de manière asynchrone par défaut. |

Vous pouvez utiliser le paramètre [alter\_sync](/fr/reference/settings/session-settings#alter_sync) pour configurer l'attente de l'exécution des actions sur les répliques.

Vous pouvez spécifier combien de temps (en secondes) attendre l'exécution des requêtes `TRUNCATE` par des répliques inactives avec le paramètre [replication\_wait\_for\_inactive\_replica\_timeout](/fr/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout).

<Note>
  Si `alter_sync` est défini sur `2` et que certaines répliques restent inactives plus longtemps que la durée spécifiée par le paramètre `replication_wait_for_inactive_replica_timeout`, une exception `UNFINISHED` est levée.
</Note>

La requête `TRUNCATE TABLE` n'est **pas prise en charge** pour les moteurs de table suivants :

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

<div id="truncate-all-tables">
  ## TRUNCATE de toutes les tables
</div>

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

<br />

| Parameter                               | Description                                                      |
| --------------------------------------- | ---------------------------------------------------------------- |
| `ALL`                                   | Supprime les données de toutes les tables de la base de données. |
| `IF EXISTS`                             | Évite une erreur si la base de données n'existe pas.             |
| `db`                                    | Le nom de la base de données.                                    |
| `LIKE \| ILIKE \| NOT LIKE '<pattern>'` | Filtre les tables selon un motif.                                |
| `ON CLUSTER cluster`                    | Exécute la commande sur l’ensemble du cluster.                   |

Supprime toutes les données de toutes les tables d’une base de données.

<div id="truncate-database">
  ## TRUNCATE DATABASE
</div>

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

<br />

| Parameter            | Description                                          |
| -------------------- | ---------------------------------------------------- |
| `IF EXISTS`          | Évite une erreur si la base de données n'existe pas. |
| `db`                 | Le nom de la base de données.                        |
| `ON CLUSTER cluster` | Exécute la commande sur le cluster spécifié.         |

Supprime toutes les tables d'une base de données, tout en conservant la base de données elle-même. Lorsque la clause `IF EXISTS` est omise, la requête renvoie une erreur si la base de données n'existe pas.

<Note>
  `TRUNCATE DATABASE` n'est pas pris en charge pour les bases de données `Replicated`. À la place, supprimez la base de données avec `DROP`, puis recréez-la avec `CREATE`.
</Note>
