Skip to main content
All quickstarts
Armazenamento de dadosOSS
Embora o ClickHouse seja voltado para cargas de trabalho analíticas de alto volume, em algumas situações é possível modificar ou excluir dados existentes. Essas operações são chamadas de “mutações” e são executadas com o comando ALTER TABLE.
Se você precisar realizar atualizações frequentes, considere usar desduplicação no ClickHouse, o que permite atualizar e/ou excluir linhas sem gerar uma mutação. Como alternativa, use atualizações leves ou exclusões leves

Atualizando dados

Use o comando ALTER TABLE...UPDATE para atualizar linhas de uma tabela:
<expression> é o novo valor da coluna quando <filter_expr> é satisfeito. <expression> deve ter o mesmo tipo de dado da coluna ou poder ser convertido para esse tipo usando o operador CAST. <filter_expr> deve retornar um valor UInt8 (zero ou diferente de zero) para cada linha de dados. Várias instruções UPDATE <column> podem ser combinadas em um único comando ALTER TABLE, separadas por vírgulas. Exemplos:
  1. Uma mutação como esta permite substituir visitor_id por novos valores usando uma consulta em Dicionário:
  2. Modificar vários valores em um único comando pode ser mais eficiente do que executar vários comandos:
  3. As mutações podem ser executadas ON CLUSTER em tabelas com shards:
Não é possível atualizar colunas que fazem parte da chave primária ou da chave de ordenação.

Excluindo dados

Use o comando ALTER TABLE para excluir linhas:
A <filter_expr> deve retornar um valor UInt8 para cada linha de dados. Exemplos
  1. Exclua quaisquer registros em que uma coluna esteja em um array de valores:
  2. O que esta consulta altera?
Para excluir todos os dados de uma tabela, é mais eficiente usar o comando TRUNCATE TABLE [<database].]<table>. Esse comando também pode ser executado ON CLUSTER.
Consulte a página da documentação da instrução DELETE para mais detalhes.

Exclusões leves

Outra opção para excluir linhas é usar o comando DELETE FROM, conhecido como exclusão leve. As linhas excluídas são marcadas como excluídas imediatamente e serão automaticamente filtradas de todas as consultas subsequentes, portanto você não precisa esperar pela mesclagem das partes nem usar a palavra-chave FINAL. A limpeza dos dados acontece de forma assíncrona em segundo plano.
Por exemplo, a consulta abaixo exclui todas as linhas da tabela hits em que a coluna Title contém o texto hello:
Algumas observações sobre exclusões leves:
  • Esse recurso está disponível apenas para a família de mecanismos de tabela MergeTree.
  • As exclusões leves são síncronas por padrão e aguardam que todas as réplicas processem a exclusão. Esse comportamento é controlado pela configuração lightweight_deletes_sync.
Last modified on July 8, 2026