项目场景:
mysql插入数据时遇到的bug。
问题描述:
pymysql.err.IntegrityError:(1062, "Duplicate entry '2147483647' for key 'PRIMARY')一开始以为是有主键重复,但是检查一遍发现并没有重复而且在navicat查看发现数据库一直是空,所以排除是重复。
原因分析:
最后感觉这数字看着眼熟,才发现是溢出问题。
我的主键是有符号int类型,范围(-2147483648 , 2147483647),当我主键的值超出这个范围自然就报错。
解决方案:
建表的时候把int改成bigint,范围是(-9223372036854775808, 9223372036854775807)。
各类型宽度可参考:
https://www.cnblogs.com/596014054-yangdongsheng/p/9983952.html