ClickHouse exception, code: 41 ClickHouse修改表字段类型后查询异常 遇到的坑

ClickHouse exception, code: 41

ClickHouse修改表字段类型后查询异常遇到的坑

由于把clickHouse表中的xxx字段类型string改为DateTime 出现如下错误

ClickHouse exception, code: 41, host: 192.168.0.123, port: 8123; Code: 41, e.displayText() = 
DB::ParsingException: Cannot parse datetime: Cannot parse DateTime from String: while executing 
'FUNCTION CAST(xxx :: 17, 'DateTime' :: 37) -> CAST(xxx, 'DateTime') DateTime : 36': (while reading from 
part /clickhouse/clickhouse/xxxxxx/): While executing MergeTree (version .... (official build))

1.修改字段类型 (修改后可能会出现查询异常)

ALTER TABLE db_name.table_name MODIFY COLUMN endTimestamp Int64;
条件允许的情况下(数据有备份 或者有方法再恢复) 把表删除,再重启创建表
-- 删除表
DROP table db.本地表

-- 然后再创建表 此时记得把类型改好
CREATE TABLE db.table(
`id` UInt64,
`name` String,
`deleted` UInt8,
`createdAt` DateTime,
`updatedAt` DateTime)ENGINE = ReplacingMergeTree(updatedAt) ORDER BY (id) PRIMARY KEY(id) SETTINGS index_granularity = 8192

2.其他相关命令

修改字段名称

ALTER TABLE db_name.table_name RENAME COLUMN regionId to region;

添加字段

ALTER TABEL db_name.table_name ADD COLUMN `$user_id` Nullable(String); 

删除字段

ALTER TABEL db_name.table_name DROP COLUMN `$user_id`;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuyuanshun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值