Saltar al contenido principal

Agregar una columna a una tabla

Usaremos clickhouse-local:
Imaginemos que tenemos la siguiente tabla:
Añadamos un registro:
Y ahora, consulta la tabla events:

Añadir una nueva columna

Supongamos ahora que vamos a añadir una nueva columna llamada favoriteNumber, que será de tipo Float64. Podemos hacerlo con la cláusula ALTER TABLE...ADD COLUMN:
Si consultamos la tabla events, veremos la siguiente salida:
La fila Alexey tiene por defecto el valor 7, ya que esa columna no existía cuando añadimos esa fila. A continuación, añadamos otra columna:
Si consultamos la tabla events, veremos la siguiente salida:

Modificar el valor predeterminado de una columna

Si modificamos la columna favoriteNumber para que tenga un tipo diferente mediante la cláusula ALTER TABLE...MODIFY COLUMN, la cosa se pone interesante:
Si volvemos a consultar events, veremos este resultado:
Tyler conserva el valor 7, que era el predeterminado cuando se creó esa fila. Alexey toma el nuevo valor predeterminado, 99, porque la columna favoriteNumber no existía cuando se creó esa fila. Si queremos que la fila de Alexey use de inmediato el valor predeterminado actual, debemos llamar a OPTIMIZE TABLE para forzar que los valores predeterminados actuales se escriban en disco:
Una vez hecho eso, supongamos que volvemos a cambiar el valor predeterminado:
Y luego inserte otra fila:
Por último, consultemos events una vez más:
Tanya adopta el nuevo valor predeterminado de 21, pero Alexey conserva el valor predeterminado anterior de 99.

Controlar la posición de una columna en la tabla

Cuando agregamos una nueva columna, de forma predeterminada se añadirá al final de la tabla. Pero podemos usar las cláusulas FIRST y AFTER para controlar en qué posición se coloca una columna. Por ejemplo, si quisiéramos agregar una columna llamada favoriteColor después de la columna name, podríamos hacerlo así:
Consultemos events:
Y, si quisiéramos añadir una columna favoriteDatabase y hacer que apareciera primero en la lista, podríamos hacerlo así:
Y veamos la definición de la tabla:
Última modificación el 10 de junio de 2026