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

# Truncate Table

> Truncate permet de supprimer les données d’une table ou d’une base de données sans supprimer la table ou la base elle-même.

Truncate permet de supprimer les données d’une table ou d’une base de données sans supprimer la table ou la base elle-même. Il s’agit d’une opération légère qui ne peut pas être annulée.

L’instruction `TRUNCATE` dans ClickHouse 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 />

| Paramètre            | Description                                                                                                                                                  |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `IF EXISTS`          | Empêche une erreur si la table n'existe pas. Si cette clause est omise, la requête renvoie une erreur.                                                       |
| `db.name`            | Nom de la base de données facultatif.                                                                                                                        |
| `ON CLUSTER cluster` | Exécute la commande sur le cluster spécifié.                                                                                                                 |
| `SYNC`               | Rend le tronquage synchrone sur les répliques lors de l'utilisation de tables répliquées. Si cette clause est omise, le tronquage est 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 attendre (en secondes) que des répliques inactives exécutent des requêtes `TRUNCATE` avec le paramètre [replication\_wait\_for\_inactive\_replica\_timeout](/fr/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout).

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

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 />

| Paramètre                               | 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 />

| Paramètre            | Description                                            |
| -------------------- | ------------------------------------------------------ |
| `IF EXISTS`          | Évite une erreur si la base de données n'existe pas.   |
| `db`                 | Nom de la base de données.                             |
| `ON CLUSTER cluster` | Exécute la commande sur l'ensemble d'un cluster donné. |

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, il suffit de `DROP`, puis de `CREATE` la base de données.
</Note>
