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

> Table système contenant des informations sur les mutations des tables MergeTree et leur avancement. Chaque commande de mutation est représentée par une seule ligne.

# system.mutations

<div id="description">
  ## Description
</div>

La table contient des informations sur les [mutations](/fr/reference/statements/alter/index#mutations) des tables [MergeTree](/fr/reference/engines/table-engines/mergetree-family/mergetree) ainsi que sur leur avancement. Chaque commande de mutation est représentée par une seule ligne.

<div id="columns">
  ## Colonnes :
</div>

* `database` ([String](/fr/reference/data-types/string)) — Le nom de la base de données à laquelle la mutation a été appliquée.
* `table` ([String](/fr/reference/data-types/string)) — Le nom de la table à laquelle la mutation a été appliquée.
* `mutation_id` ([String](/fr/reference/data-types/string)) — L’ID de la mutation. Pour les tables répliquées, ces ID correspondent aux noms de znode dans le répertoire `<table_path_in_clickhouse_keeper>/mutations/` de ClickHouse Keeper. Pour les tables non répliquées, les ID correspondent aux noms de fichiers dans le répertoire de données de la table.
* `command` ([String](/fr/reference/data-types/string)) — La chaîne de commande de mutation (la partie de la requête après ALTER TABLE \[db.]table).
* `create_time` ([DateTime](/fr/reference/data-types/datetime)) — La date et l’heure auxquelles la commande de mutation a été soumise à l’exécution.
* `block_numbers.partition_id` ([Array(String)](/fr/reference/data-types/array)) — Pour les mutations de tables répliquées, le tableau contient les ID des partitions (un enregistrement par partition). Pour les mutations de tables non répliquées, le tableau est vide.
* `block_numbers.number` ([Array(Int64)](/fr/reference/data-types/array)) — Pour les mutations de tables répliquées, le tableau contient un enregistrement par partition, avec le numéro de bloc obtenu par la mutation. Dans chaque partition, seules les parties contenant des blocs dont le numéro est inférieur à ce numéro seront mutées. Dans les tables non répliquées, les numéros de bloc de toutes les partitions forment une seule séquence. Par conséquent, pour les mutations de tables non répliquées, la colonne contient un enregistrement avec un unique numéro de bloc obtenu par la mutation.
* `parts_in_progress_names` ([Array(String)](/fr/reference/data-types/array)) — Un tableau des noms des parties de données en cours de mutation.
* `parts_to_do_names` ([Array(String)](/fr/reference/data-types/array)) — Un tableau des noms des parties de données qui doivent être mutées pour que la mutation soit terminée.
* `parts_to_do` ([Int64](/fr/reference/data-types/int-uint)) — Le nombre de parties de données qui doivent être mutées pour que la mutation soit terminée. Remarque : même si `parts_to_do` = 0, une mutation d’une table répliquée peut ne pas être encore terminée en raison d’un INSERT de longue durée créant une nouvelle partie de données qui devra être mutée.
* `parts_postpone_reasons` ([Map(String, String)](/fr/reference/data-types/map)) — Une map associant les noms des parties aux raisons de leur report.
* `is_done` ([UInt8](/fr/reference/data-types/int-uint)) — Indique si la mutation est terminée. Valeurs possibles : 1 si la mutation est terminée, 0 si elle est toujours en cours.
* `is_killed` ([UInt8](/fr/reference/data-types/int-uint)) — Indique si une mutation a été arrêtée. Disponible uniquement dans ClickHouse Cloud. Remarque : is\_killed=1 ne signifie pas nécessairement que la mutation est entièrement finalisée. Une mutation peut rester longtemps dans un état où is\_killed=1 et is\_done=0. Cela peut se produire si une autre mutation de longue durée bloque la mutation arrêtée. Il s’agit d’une situation normale.
* `latest_failed_part` ([String](/fr/reference/data-types/string)) — Le nom de la dernière partie qui n’a pas pu être mutée.
* `latest_fail_time` ([DateTime](/fr/reference/data-types/datetime)) — La date et l’heure du dernier échec de mutation d’une partie.
* `latest_fail_reason` ([String](/fr/reference/data-types/string)) — Le message d’exception à l’origine du dernier échec de mutation d’une partie.
* `latest_fail_error_code_name` ([String](/fr/reference/data-types/string)) — Le code d’erreur de l’exception à l’origine du dernier échec de mutation d’une partie.

<Note>
  - Si un nom de partie de données ne figure pas dans `parts_postpone_reasons` et n'a pas encore été muté, cela signifie que la partie de données n'est pas encore planifiée pour une mutation.
  - Le nom de partie de données `all_parts` représente toutes les parties de données qui n'ont pas encore été mutées.
</Note>

* `is_killed` ([UInt8](/fr/reference/data-types/int-uint)) — Indique si une mutation a été arrêtée. **Disponible uniquement dans ClickHouse Cloud.**

<Note>
  `is_killed=1` ne signifie pas nécessairement que la mutation est entièrement terminée. Une mutation peut rester longtemps dans un état où `is_killed=1` et `is_done=0`. Cela peut se produire si une autre mutation de longue durée bloque la mutation arrêtée. Il s'agit d'une situation normale.
</Note>

* `is_done` ([UInt8](/fr/reference/data-types/int-uint)) — Indique si la mutation est terminée ou non. Valeurs possibles :
  * `1` si la mutation est terminée,
  * `0` si la mutation est toujours en cours.

<Note>
  Même si `parts_to_do = 0`, il est possible qu'une mutation d'une table répliquée ne soit pas encore terminée en raison d'une requête `INSERT` de longue durée, qui créera une nouvelle partie de données devant encore être traitée par la mutation.
</Note>

Si des problèmes sont survenus lors de la mutation de certaines parties de données, les colonnes suivantes contiennent des informations supplémentaires :

* `latest_failed_part` ([String](/fr/reference/data-types/string)) — Le nom de la partie de données la plus récente qui n'a pas pu être mutée.
* `latest_fail_time` ([DateTime](/fr/reference/data-types/datetime)) — La date et l'heure du plus récent échec de mutation d'une partie de données.
* `latest_fail_reason` ([String](/fr/reference/data-types/string)) — Le message d'exception à l'origine du plus récent échec de mutation d'une partie de données.

<div id="monitoring-mutations">
  ## Suivi des mutations
</div>

Pour suivre la progression dans la table `system.mutations`, utilisez la requête suivante :

```sql theme={null}
SELECT * FROM clusterAllReplicas('cluster_name', 'system', 'mutations')
WHERE is_done = 0 AND table = 'tmp';

-- or

SELECT * FROM clusterAllReplicas('cluster_name', 'system.mutations')
WHERE is_done = 0 AND table = 'tmp';
```

Remarque : cela nécessite des droits de lecture sur les tables `system.*`.

<Tip>
  **Utilisation de Cloud**

  Dans ClickHouse Cloud, la table `system.mutations` de chaque nœud contient toutes les mutations du cluster, et il n'est pas nécessaire d'utiliser `clusterAllReplicas`.
</Tip>

<div id="see-also">
  ## Voir aussi
</div>

* [Mutations](/fr/reference/statements/alter/index#mutations)
* moteur de table [MergeTree](/fr/reference/engines/table-engines/mergetree-family/mergetree)
* famille [ReplicatedMergeTree](/fr/reference/engines/table-engines/mergetree-family/replication)
