Skip to main content
Manipula os dados que correspondem à expressão de filtro especificada. É implementado como uma mutação.
O prefixo ALTER TABLE faz com que essa sintaxe seja diferente da maioria dos outros sistemas compatíveis com SQL. Ele serve para indicar que, ao contrário de consultas semelhantes em bancos de dados OLTP, esta é uma operação pesada, não projetada para uso frequente.
A filter_expr deve ser do tipo UInt8. Esta consulta atualiza os valores das colunas especificadas para os valores das expressões correspondentes nas linhas em que a filter_expr assume um valor diferente de zero. Os valores são convertidos para o tipo da coluna usando o operador CAST. Não há suporte para atualizar colunas usadas no cálculo da chave primária ou da chave de partição. Uma única consulta pode conter vários comandos separados por vírgulas. A cláusula IN PARTITION limita a mutação às partições listadas. Sem ela, em tabelas da família ReplicatedMergeTree, quando a configuração optimize_mutations_with_partition_pruning está habilitada (o padrão), o ClickHouse detecta automaticamente as condições de chave de partição na filter_expr e realiza a mutação apenas nas partições afetadas. Em tabelas MergeTree não replicadas, use uma cláusula IN PARTITION explícita para limitar a mutação a partições específicas. A sincronia do processamento da consulta é definida pela configuração mutations_sync. Por padrão, ela é assíncrona. Veja também

Colunas materializadas

Uma coluna MATERIALIZED cuja expressão lê uma coluna atualizada é recalculada pela mutação, garantindo que seu valor armazenado permaneça consistente com os novos dados.

Colunas calculadas a partir de colunas EPHEMERAL

Uma coluna EPHEMERAL existe apenas durante um INSERT e nunca é armazenada. Portanto, uma coluna MATERIALIZED calculada a partir dela não pode ser recalculada por uma mutação. Essa coluna mantém o valor calculado no momento do INSERT, que posteriormente deixa de corresponder à sua expressão:
m é 8, o valor calculado durante o INSERT, e não 2 + 7: o valor de e não está disponível fora do INSERT que o forneceu. A mutação registra um aviso no log do servidor ao ignorar uma coluna por esse motivo. Para atualizar essa coluna, execute novamente o INSERT nas linhas afetadas.

Conteúdo relacionado

Última modificação em 26 de setembro de 2026