> ## 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.

> Documentation des instructions TRUNCATE

# 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.

## TRUNCATE TABLE

```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#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/other#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. Avec `alter_sync = 3`, les répliques inactives ne font l'objet d'aucune attente, aucune exception n'est donc 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)

## TRUNCATE de toutes les tables

```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.

## TRUNCATE DATABASE

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