在Clickhouse中的表中更改列名称

时间:2017-11-17 11:42:07

标签: clickhouse

有没有办法改变一个表并更改clickhouse中的列名? 我只是发现改变了表名,但没有直接改变单个列。

感谢。

2 个答案:

答案 0 :(得分:2)

ClickHouse还没有这个功能。

  

实现并不简单,因为改变列的ALTER   在常规复制队列之外处理,并添加重命名   没有ALTER的重新加工将引入竞争条件   复制表。

https://github.com/yandex/ClickHouse/issues/146#issuecomment-255631384

正如@Slash所说,现在的解决方案是创建新表和

INSERT INTO `new_table` SELECT * FROM `old_table`

不要忘记列别名在那里不起作用(AS)。

INSERT INTO `new_table` SELECT a, b AS c, c AS b FROM `old_table`

仍会将a插入第一列,b插入第二列,c插入第三列。 AS在那里没有效果。

答案 1 :(得分:1)

您可以尝试将CREATE TABLE new_table与其他字段名称一起使用 并运行INSERT INTO new_table SELECT old_field AS new_field FROM old_table