mysql-pymysql.err.IntegrityError:(1062, “Duplicate entry ‘2147483647‘ for key ‘PRIMARY‘)

项目场景:

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

### 关于浙江大学翁恺老师的C语言学习资源 针对C语言的学习,浙江大学的翁恺老师提供了丰富的教学材料和视频教程。这些资源不仅涵盖了基础概念,还包括实践应用和技术细节。 #### C语言的历史和发展背景 C语言起源于1967年,当时Martin Richards对CPL语言进行了简化并创造了BCPL语言[^1]。随后,在1970年,Ken Thompson基于BCPL开发了更贴近硬件的B语言,并用于编写首个UNIX操作系统。紧接着,Dennis M. Ritchie在1972年进一步改进B语言,从而诞生了经典的C语言。这一过程体现了编程语言如何逐步演进以适应不同的计算需求。 #### 翁恺老师的在线课程与教材推荐 对于希望跟随翁恺教授深入理解C语言的学生来说,有以下几个途径可以获得高质量的学习资料: - **中国大学MOOC平台上的《程序设计入门—C语言》**:这门课由翁恺亲自讲授,适合初学者以及有一定经验的人士复习巩固知识点。 - **书籍**:虽然具体的书名可能因版本不同而有所变化,但通常会围绕着标准C语法展开讨论,如`ANSI C` (1989),它后来被国际标准化组织采纳成为ISO C标准(C89)。后续还有多次修订,比如C95, C99等版本更新。 #### 实践技巧分享 当涉及到具体编码操作时,了解一些实用的小贴士可以帮助提高效率。例如,在处理数组长度计算方面,可以通过如下方法获取数组元素数量: ```c int a[] = {1, 2, 3}; size_t n_elements = sizeof(a)/sizeof(*a); ``` 这里利用了`sizeof()`运算符来测量整个数组及其单个成员所占字节数的比例,进而得出总数目[^2]。 #### 推荐参考资料链接 为了方便查找更多关于翁恺老师的公开讲座和其他辅助文档,请访问以下网站或搜索引擎查询关键词:“浙江大学 翁恺 C语言”。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值