如何在CnosDB中实现类MySQL风格的表字段重命名?
CnosDB 类MySQL风格字段重命名实现方法
CnosDB原生支持和MySQL使用习惯对齐的ALTER TABLE字段重命名能力,直接通过RENAME COLUMN子句即可完成字段名修改,不需要做数据导出导入这类冗余操作。
操作语法
通用语法格式如下:
ALTER TABLE <表名> RENAME COLUMN <旧字段名> TO <新字段名>;
实操示例
针对你当前使用的air表,如果需要把现有字段visibility重命名为vis,直接执行以下语句即可:
ALTER TABLE air RENAME COLUMN visibility TO vis;
执行完成后,用新字段名查询即可正常获取原有存量数据,和你之前的查询结果完全一致:
> select * from air where vis > 70 name: air time pressure station temperature vis ---- -------- ------- ----------- --- 2021-08-31T16:00:00Z 78 LianYunGang 63 71 2021-08-31T16:06:00Z 58 XiaoMaiDao 77 79
注意事项
- 该操作是元数据层面的变更,不会扫描、重写底层存储的全量时序数据,哪怕是存储了上亿条数据的大表,也可以秒级完成执行,不会长时间占用资源
- 重命名前请确认新字段名和表内已存在的其他字段名不重复,否则会触发字段重复报错,导致执行失败
time是CnosDB时序表的内置保留时间字段,禁止对该字段执行重命名操作,否则会破坏时序查询、数据写入的基础逻辑,引发异常- 分布式部署场景下的逻辑超表执行该语句时,变更会自动同步到所有底层分片节点,不需要逐节点手动执行操作
内容的提问来源于stack exchange,提问作者Munin
相关产品推荐
相关产品推荐

