TIDB数据库表字段类型无法从varchar类型更改为date类型

TIDB数据库表字段类型无法从varchar类型更改为date类型

1赞

你好: 方便把你的当前的这个建表语句,更改类型的语句以及报错发一下吗?

最好也看一下,现在这个 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.

3.0 及之前版本,TiDB 还不支持修改数据类型。

1赞

哪个版本支持修改数据类型呢?

支持修改数据类型。需要注意的是 TiDB 目前只支持字段改长,不支持改短。 eg:varchar(10) -> varchar(20) 可以,但是 varchar(10) -> varchar(5) 不行。 也就是 varchar(30) -> date (默认长度 10) 不行。