TIDB数据库表字段类型无法从varchar类型更改为date类型
你好: 方便把你的当前的这个建表语句,更改类型的语句以及报错发一下吗?
最好也看一下,现在这个 varchar 字段里存的数据是什么样的。
你可以提供一下你的操作步骤,这样方便其他小伙伴帮你解答。
报错为:ERROR 1105 (HY000): unsupported modify column length 10 is less than origin 30
mysql> alter table init_purchase_bill modify date_time date not null comment “日期”; ERROR 1105 (HY000): unsupported modify column length 10 is less than origin 30
数据是
存储数据是日期: mysql> select date_time from init_purchase_bill limit 2; ±-----------+ | date_time | ±-----------+ | 2012-11-20 | | 2012-11-20 | ±-----------+ 2 rows in set (0.00 sec)
你的这一列是 varchar(30) 吗?
我理解是,TiDB 目前中字段可以改长,但不能改短。这个报错的意思也是这样,date 默认是 10.
https://pingcap.com/docs-cn/v3.0/reference/sql/data-types/date-and-time/#date-类型
3.0 及之前版本,TiDB 还不支持修改数据类型。
哪个版本支持修改数据类型呢?
支持修改数据类型。需要注意的是 TiDB 目前只支持字段改长,不支持改短。 eg:varchar(10) -> varchar(20) 可以,但是 varchar(10) -> varchar(5) 不行。 也就是 varchar(30) -> date (默认长度 10) 不行。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。