目录
修改列名的语句:
alter table smp_app.cust_theme_01 RENAME COLUMN cust_id to cust_nm;
问题描述:
ck修改表中的列名报错:
SQL 错误 [524]: ClickHouse exception, code: 524, host: 10.30.202.21, port: 8123; Code: 524, e.displayText() = DB::Exception: Trying to ALTER RENAME key cust_id column which is a part of key expression (version 20.8.3.18)
原因:
查资料发现,ck在v20.4.2.9,2020-05-12版本以后就支持修改列名了。为啥我这还报错呢?
再查下建表语句:
CREATE TABLE smp_app.cust_theme_01
(
`etl_dt` Date COMMENT '数据处理日期',
`cust_id` String COMMENT '客户证件号码',
......
`ld2107010894` Nullable(String) COMMENT '单变量01',
`ld2107010896` Nullable(String) COMMENT '多标签01'
)
ENGINE = MergeTree()
ORDER BY cust_id
SETTINGS index_granularity = 8192
解决:
发现要修改的列名为排序字段。
找到问题所在!
总结:
修改列名时不可修改ORDER BY的字段。
备注:
本地表修改列名语句:
ALTER TABLE visits RENAME COLUMN webBrowser TO browser
分布式表修改列名语句:
ALTER TABLE visits on cluster shipin_cluster RENAME COLUMN webBrowser TO browser