bigint改varchar

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.3.0
【遇到的问题】
对非主键字段变更类型异常:从bigint改为varchar(128),报ERROR 1265 (01000): Data truncated for column ‘seller_id’ at row 1
【复现路径】做过哪些操作出现的问题
seller_id bigint(20) unsigned DEFAULT NULL
ALTER TABLE testtb MODIFY seller_id VARCHAR(128) NOT NULL DEFAULT ‘’ COMMENT ‘卖家店铺ID’;
【问题现象及影响】
影响字段类型变更,从而影响到业务逻辑处理。

1 个赞

可以看看seller_id是否包含空值

1 个赞

是包含的,因为之前是允许为空。不设置默认值也试过不行,ALTER TABLE testtb MODIFY seller_id VARCHAR(128) NOT NULL COMMENT ‘卖家店铺ID’;

1 个赞

字段本身包含NULL的肯定不能直接改为NOT NULL,需要先把包含NULL的数据处理下。

1 个赞

哦,不会强制转成default是吧。那再试试

1 个赞

先修正null为 默认值,再调表结构

2 个赞

感谢!!已经可以了

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。