Mysql 更新字段类型异常处理:ERROR 1265 (01000): Data truncated for column 'xxx' at row 1

Mysql 更新字段类型异常处理:ERROR 1265 (01000): Data truncated for column ‘xxx’ at row 1

MySQL中需要修改表字段的默认值,在研发环境测试执行SQL没有问题:

mysql>  alter table `user` MODIFY COLUMN `weight` int(11) NOT NULL DEFAULT 0 COMMENT '权重分';
 Query OK, 330271 rows affected (2.76 sec)
Records: 330271  Duplicates: 0  Warnings: 0

原来的字段类型是这样的:

FieldTypeNullKeyDefaultExtra
weightint(11)YESNULL

结果在生产环境执行异常:

mysql>  alter table `user` MODIFY COLUMN `weight` int(11) NOT NULL DEFAULT 0 COMMENT '权重分';
ERROR 1265 (01000): Data truncated for column 'weight' at row 1

网上查询说有可能是字段类型的问题,仔细核对字段类型,发现没有问题。
换种思路,将字段中的值先更新为0,然后再更新,成功了。可能是MySQL版本不同,导致执行结果有区别。

mysql> update `user` set `weight` = 0 where `weight` is null;
Query OK, 330271 rows affected (5.80 sec)
Rows matched: 330271  Changed: 330271  Warnings: 0

mysql> alter table `user` MODIFY COLUMN `weight` int(11) NOT NULL DEFAULT '0' COMMENT '权重分';
Query OK, 330271 rows affected (2.76 sec)
Records: 330271  Duplicates: 0  Warnings: 0

再通过desc查看表结构,搞定!:

FieldTypeNullKeyDefaultExtra
weightint(11)NO0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值