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

> Tabela do sistema que contém informações sobre as mutações de tabelas MergeTree e seu progresso. Cada comando de mutação é representado por uma única linha.

# system.mutations

<div id="description">
  ## Descrição
</div>

A tabela contém informações sobre [mutações](/pt-BR/reference/statements/alter#mutations) de tabelas [MergeTree](/pt-BR/reference/engines/table-engines/mergetree-family/mergetree) e o andamento delas. Cada comando de mutação é representado por uma única linha.

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

* `database` ([String](/pt-BR/reference/data-types)) — O nome do banco de dados ao qual a mutação foi aplicada.
* `table` ([String](/pt-BR/reference/data-types)) — O nome da tabela à qual a mutação foi aplicada.
* `mutation_id` ([String](/pt-BR/reference/data-types)) — O ID da mutação. Para tabelas replicadas, esses IDs correspondem aos nomes dos znodes no diretório `<table_path_in_clickhouse_keeper>/mutations/` no ClickHouse Keeper. Para tabelas não replicadas, os IDs correspondem aos nomes de arquivos no diretório de dados da tabela.
* `command` ([String](/pt-BR/reference/data-types)) — A string do comando de mutação (a parte da consulta após ALTER TABLE \[db.]table).
* `create_time` ([DateTime](/pt-BR/reference/data-types)) — Data e hora em que o comando de mutação foi enviado para execução.
* `block_numbers.partition_id` ([Array(String)](/pt-BR/reference/data-types)) — Para mutações de tabelas replicadas, o array contém os IDs das partições (um registro para cada partição). Para mutações de tabelas não replicadas, o array está vazio.
* `block_numbers.number` ([Array(Int64)](/pt-BR/reference/data-types)) — Para mutações de tabelas replicadas, o array contém um registro para cada partição, com o número do bloco adquirido pela mutação. Somente as partes que contêm blocos com números menores que esse serão alteradas pela mutação na partição. Em tabelas não replicadas, os números de bloco em todas as partições formam uma única sequência. Isso significa que, para mutações de tabelas não replicadas, a coluna conterá um registro com um único número de bloco adquirido pela mutação.
* `parts_in_progress_names` ([Array(String)](/pt-BR/reference/data-types)) — Um array com os nomes das partes de dados que estão sendo alteradas no momento pela mutação.
* `parts_to_do_names` ([Array(String)](/pt-BR/reference/data-types)) — Um array com os nomes das partes de dados que ainda precisam ser alteradas para que a mutação seja concluída.
* `parts_to_do` ([Int64](/pt-BR/reference/data-types)) — O número de partes de dados que ainda precisam ser alteradas para que a mutação seja concluída. Observação: mesmo que `parts_to_do` = 0, uma mutação em uma tabela replicada talvez ainda não tenha sido concluída devido a um INSERT de longa duração que está criando uma nova parte de dados que precisará ser alterada.
* `parts_postpone_reasons` ([Map(String, String)](/pt-BR/reference/data-types)) — Um map de nomes de partes para os motivos pelos quais elas foram adiadas.
* `is_done` ([UInt8](/pt-BR/reference/data-types)) — Sinalizador que indica se a mutação foi concluída ou não. Valores possíveis: 1 se a mutação foi concluída, 0 se a mutação ainda está em andamento.
* `is_killed` ([UInt8](/pt-BR/reference/data-types)) — Indica se uma mutação foi interrompida. Disponível apenas no ClickHouse Cloud. Observação: is\_killed=1 não significa necessariamente que a mutação tenha sido totalmente finalizada. É possível que uma mutação permaneça em um estado em que is\_killed=1 e is\_done=0 por um período prolongado. Isso pode ocorrer se outra mutação de longa duração estiver bloqueando a mutação interrompida. Essa é uma situação normal.
* `latest_failed_part` ([String](/pt-BR/reference/data-types)) — O nome da parte mais recente que não pôde ser alterada.
* `latest_fail_time` ([DateTime](/pt-BR/reference/data-types)) — A data e a hora da falha mais recente na alteração de uma parte.
* `latest_fail_reason` ([String](/pt-BR/reference/data-types)) — A mensagem de exceção que causou a falha mais recente na alteração de uma parte.
* `latest_fail_error_code_name` ([String](/pt-BR/reference/data-types)) — O código de erro da exceção que causou a falha mais recente na alteração de uma parte.

<Note>
  - Se o nome de uma parte não estiver em `parts_postpone_reasons` e ainda não tiver sido alterada, isso significa que a parte ainda não foi agendada para mutação.
  - O nome de parte `all_parts` representa todas as partes que ainda não foram alteradas.
</Note>

* `is_killed` ([UInt8](/pt-BR/reference/data-types/int-uint)) — Indica se uma mutação foi interrompida. **Disponível apenas no ClickHouse Cloud.**

<Note>
  `is_killed=1` não significa necessariamente que a mutação tenha sido totalmente finalizada. É possível que uma mutação permaneça por um longo período em um estado em que `is_killed=1` e `is_done=0`. Isso pode acontecer se outra mutação de longa duração estiver bloqueando a mutação interrompida. Essa é uma situação normal.
</Note>

* `is_done` ([UInt8](/pt-BR/reference/data-types/int-uint)) — Indica se a mutação foi concluída ou não. Valores possíveis:
  * `1` se a mutação foi concluída,
  * `0` se a mutação ainda está em processamento.

<Note>
  Mesmo se `parts_to_do = 0`, é possível que uma mutação em uma tabela replicada ainda não tenha sido concluída devido a uma consulta `INSERT` de longa duração, que criará uma nova parte de dados que precisará ser alterada.
</Note>

Se houve problemas ao alterar algumas partes de dados, as colunas a seguir contêm informações adicionais:

* `latest_failed_part` ([String](/pt-BR/reference/data-types/string)) — O nome da parte mais recente que não pôde ser alterada.
* `latest_fail_time` ([DateTime](/pt-BR/reference/data-types/datetime)) — A data e a hora da falha mais recente ao alterar uma parte.
* `latest_fail_reason` ([String](/pt-BR/reference/data-types/string)) — A mensagem de exceção que causou a falha mais recente ao alterar uma parte.

<div id="monitoring-mutations">
  ## Monitorando mutações
</div>

Para acompanhar o progresso na tabela `system.mutations`, use a seguinte consulta:

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

-- ou

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

Observação: isso exige permissões de leitura nas tabelas `system.*`.

<Tip>
  **Uso no Cloud**

  No ClickHouse Cloud, a tabela `system.mutations` em cada nó contém todas as mutações do cluster, e não há necessidade de `clusterAllReplicas`.
</Tip>

<div id="see-also">
  ## Veja também
</div>

* [Mutações](/pt-BR/reference/statements/alter#mutations)
* [MergeTree](/pt-BR/reference/engines/table-engines/mergetree-family/mergetree) motor de tabela
* família [ReplicatedMergeTree](/pt-BR/reference/engines/table-engines/mergetree-family/replication)
