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

> 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/index)) — Le nom de la base de données à laquelle la mutation a été appliquée.
* `table` ([String](/fr/reference/data-types/index)) — Le nom de la table à laquelle la mutation a été appliquée.
* `mutation_id` ([String](/fr/reference/data-types/index)) — L’ID de la mutation. Pour les tables répliquées, ces ID correspondent aux noms des znodes 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/index)) — La chaîne de commande de la mutation (la partie de la requête après ALTER TABLE \[db.]table).
* `create_time` ([DateTime](/fr/reference/data-types/index)) — 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/index)) — Pour les mutations de tables répliquées, le tableau contient les ID des partitions (un enregistrement pour chaque partition). Pour les mutations de tables non répliquées, le tableau est vide.
* `block_numbers.number` ([Array(Int64)](/fr/reference/data-types/index)) — Pour les mutations de tables répliquées, le tableau contient un enregistrement pour chaque partition, avec le numéro de bloc obtenu par la mutation. Seules les parts contenant des blocs dont les numéros sont inférieurs à cette valeur seront mutées dans la partition. Dans les tables non répliquées, les numéros de bloc de toutes les partitions forment une seule séquence. Cela signifie que, pour les mutations de tables non répliquées, la colonne contiendra un enregistrement avec un seul numéro de bloc obtenu par la mutation.
* `parts_in_progress_names` ([Array(String)](/fr/reference/data-types/index)) — Un tableau des noms des parties de données en cours de mutation.
* `parts_to_do_names` ([Array(String)](/fr/reference/data-types/index)) — 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/index)) — 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, la mutation d’une table répliquée peut ne pas être encore terminée en raison d’un INSERT de longue durée qui crée une nouvelle partie de données devant être mutée.
* `parts_postpone_reasons` ([Map(String, String)](/fr/reference/data-types/index)) — Une correspondance entre les noms des parts et les raisons de leur report.
* `is_done` ([UInt8](/fr/reference/data-types/index)) — 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.
* `is_killed` ([UInt8](/fr/reference/data-types/index)) — 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 complètement finalisée. Il est possible qu’une mutation reste pendant une période prolongée 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/index)) — Le nom de la part la plus récente qui n’a pas pu être mutée.
* `latest_fail_time` ([DateTime](/fr/reference/data-types/index)) — La date et l’heure du dernier échec de mutation d’une part.
* `latest_fail_reason` ([String](/fr/reference/data-types/index)) — Le message d’exception à l’origine du dernier échec de mutation d’une part.
* `latest_fail_error_code_name` ([String](/fr/reference/data-types/index)) — Le code d’erreur de l’exception à l’origine du dernier échec de mutation d’une part.

<Note>
  - Si un nom de part n'apparaît pas dans `parts_postpone_reasons` et n'a pas encore été muté, cela signifie que la part n'est pas encore planifiée pour une mutation.
  - Le nom de part `all_parts` représente toutes les parts 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 finalisée. Il est possible qu'une mutation reste pendant une période prolongée 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 part 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 part.
* `latest_fail_reason` ([String](/fr/reference/data-types/string)) — Le message d'exception à l'origine du plus récent échec de mutation d'une part.

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