有没有办法改变一个表并更改clickhouse中的列名? 我只是发现改变了表名,但没有直接改变单个列。
感谢。
答案 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