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

来源:互联网 发布:怎样制作淘宝店招 编辑:程序博客网 时间:2024/06/04 20:05

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

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

Field Type Null Key Default Extra weight int(11) YES NULL

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

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: 0mysql> 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查看表结构,搞定!:

Field Type Null Key Default Extra weight int(11) NO 0
0 0
原创粉丝点击