Skip to main content
Aunque ClickHouse está orientado a cargas de trabajo analíticas de gran volumen, en algunas situaciones es posible modificar o eliminar datos existentes. Estas operaciones se denominan “mutaciones” y se ejecutan mediante el comando ALTER TABLE.
Si necesita realizar actualizaciones frecuentes, considere usar la deduplicación en ClickHouse, que permite actualizar y/o eliminar filas sin generar un evento de mutación. Como alternativa, use actualizaciones ligeras o eliminaciones ligeras

Actualizar datos

Utilice el comando ALTER TABLE...UPDATE para actualizar filas en una tabla:
<expression> es el nuevo valor de la columna para la que se cumple <filter_expr>. <expression> debe ser del mismo tipo de dato que la columna, o debe poder convertirse al mismo tipo de dato mediante el operador CAST. <filter_expr> debe devolver un valor UInt8 (cero o distinto de cero) para cada fila de los datos. Varias Sentencias UPDATE <column> pueden combinarse en un único comando ALTER TABLE, separadas por comas. Ejemplos:
  1. Una mutación como esta permite reemplazar visitor_ids por otros nuevos mediante una consulta a un Diccionario:
  2. Modificar varios valores en un solo comando puede ser más eficiente que usar varios comandos:
  3. Las mutaciones pueden ejecutarse ON CLUSTER para tablas segmentadas:
No es posible actualizar columnas que formen parte de la clave primaria o de la clave de ordenación.

Eliminación de datos

Utilice el comando ALTER TABLE para eliminar filas:
La <filter_expr> debe devolver un valor UInt8 para cada fila de datos. Ejemplos
  1. Elimine cualquier registro en el que una columna esté dentro de una lista de valores:
  2. ¿Qué modifica esta consulta?
Para eliminar todos los datos de una tabla, es más eficiente usar el comando TRUNCATE TABLE [<database].]<table>. Este comando también puede ejecutarse ON CLUSTER.
Consulte la página de documentación de la sentencia DELETE para obtener más detalles.

Eliminaciones ligeras

Otra opción para eliminar filas es usar el comando DELETE FROM, lo que se conoce como una eliminación ligera. Las filas eliminadas se marcan como eliminadas de inmediato y quedarán excluidas automáticamente de todas las consultas posteriores, por lo que no es necesario esperar a la fusión de partes ni usar la palabra clave FINAL. La limpieza de los datos se realiza de forma asíncrona en segundo plano.
Por ejemplo, la siguiente consulta elimina todas las filas de la tabla hits en las que la columna Title contiene el texto hello:
Algunas notas sobre las eliminaciones ligeras:
  • Esta función solo está disponible para la familia de motores de tabla MergeTree.
  • Las eliminaciones ligeras son síncronas de forma predeterminada y esperan a que todas las réplicas procesen la eliminación. Este comportamiento se controla mediante la configuración lightweight_deletes_sync.
Last modified on July 2, 2026