解决java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘1‘ for key ‘book.PRIMARY‘

目录

问题

原因

解决方案


问题

场景:有张图书表,主键是自增的。现在我写了个添加图书功能。因为主键是自增的我插入时无需设置主键值。

关键代码如下:

然后就报这个异常了:

找了一圈并没有发现能解决我这个问题的。最终仔细分析想了下才发现端倪,听我慢慢道来。 

原因

先说结论

原因就是自增序列的值跟表里数据的主键值不匹配

何以见得?仔细观察这两次调用报错的提示信息有何不同

你第一出现的异常信息这里是1或者其他数,这个数代表目前自增序列为你分配的主键值

 你再次调用还是会抛这个异常,但是这个值+1了。这让我瞬间想到了自增序列与当前表里数据主键不一致问题。你第一次调用mysql自增序列给你匹配了主键是1但是表里面有数据的主键是1了所以主键重复,这是mysql底层自增序列知道1重复了会进行自增++操作,这是第二次调用就会提示主键值2重复。你再次调用会提示3重复、、、、循环以往,直到自增队列的值在表里不存在了就没这个错误了。

为何会导致主键自增序列跟表里的数据主键不匹配呢?

导致我遇到这个问题的原因很简单 

CREATE TABLE Book (id INT PRIMARY KEY COMMENT '图书ID',title VARCHAR(100) NOT NULL COMMENT '标题',publisher VARCHAR(100) NOT NULL COMMENT '出版商',isbn VARCHAR(20) NOT NULL COMMENT 'ISBN号',publishDate DATE NOT NULL COMMENT '出版日期',author VARCHAR(100) NOT NULL COMMENT '作者'
);
INSERT INTO Book (id, title, publisher, isbn, publishDate, author) VALUES 
(1, 'Java编程', '清华大学出版社', '978-7-302-32950-4', '2023-12-01', '张三'),
(2, 'Python入门指南', '人民邮电出版社', '9787115423681', '2023-11-15', '李四'),
(3, 'C++ Primer Plus', '机械工业出版社', '9787111540953', '2024-01-20', '王五'),
(4, '数据结构与算法分析', '电子工业出版社', '9787121347883', '2024-02-28', '赵六'),
(5, '计算机网络', '高等教育出版社', '9787040292726', '2024-03-10', '孙七'),
(6, '数据库系统概论', '清华大学出版社', '9787302423284', '2024-04-05', '周八'),
(7, '软件工程导论', '人民邮电出版社', '9787111226532', '2024-05-18', '吴九'),
(8, '操作系统原理', '机械工业出版社', '9787111538905', '2024-06-25', '郑十'),
(9, '计算机组成原理', '电子工业出版社', '9787121270012', '2024-07-12', '钱十一'),
(10, '嵌入式系统设计', '高等教育出版社', '9787040284652', '2024-08-30', '孙十二'),
(11, '人工智能导论', '清华大学出版社', '9787302463242', '2024-09-05', '周十三'),
(12, '大数据技术与应用', '人民邮电出版社', '9787111488774', '2024-10-18', '吴十四'),
(13, '信息安全原理', '机械工业出版社', '9787111514145', '2024-11-25', '郑十五'),
(14, '移动应用开发', '电子工业出版社', '9787121209830', '2024-12-08', '钱十六'),
(15, '云计算基础', '高等教育出版社', '9787040263824', '2025-01-15', '孙十七'),
(16, '物联网技术与应用', '清华大学出版社', '9787302346727', '2025-02-20', '周十八'),
(17, '区块链原理与应用', '人民邮电出版社', '9787111530480', '2025-03-28', '吴十九'),
(18, '软件测试与质量保障', '机械工业出版社', '9787111568384', '2025-04-10', '郑二十'),
(19, 'Python数据分析', '电子工业出版社', '9787121308827', '2025-05-05', '钱二十一'),
(20, 'Java Web开发', '高等教育出版社', '9787040348033', '2025-06-15', '孙二十二');

 一开始我让al生成的表创建sql,就没指定为自增主键,但是已经初始化了20条数据,后面我才发现主键不是自增,就给修改成自增了,这是自增序列并不知道表里面有数据,主键已经排到20了。

解决方案

这很简单直接删除表,重新创建保证主键定义为自增的之后再进行插入,还有插入最好不要指定id了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑桌面文件夹删除不了怎么办?6种方法快速解决,建议收藏!

桌面文件夹删不掉怎么办?有时会遇到桌面上的文件夹无法删除的问题,这是由于文件夹被系统进程或某些应用占用,或者是由于权限设置等原因造成的。以下是解决桌面文件夹无法删除问题的方法,帮助你有效地清理桌面环境。 桌面文件夹删不…

中欧科学家论坛暨第六届人工智能与先进制造国际会议(AIAM2024)

会议日期:2024年10月20-21日 会议地点:德国-法兰克福 会议官网:https://www.iaast.cn/meet/home/Bx130JiM 出版检索:EI、Scopus等数据库收录 【会议简介】 “中欧科学家论坛”由德国、法国、荷兰、瑞士、丹麦、意大利、西班牙…

欧几里得算法求解最大公约数(附代码实现,习题练习)

1.公约数、最大公约数的定义 公约数,亦称“公因数”。它是指能同时整除几个整数的数 。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”。公约数中最大的称为最大公约数。对任意的若干个正整数,1总是它们的公因数。eg.30和4…

C++回溯算法(2)

棋盘问题 #include<bits/stdc.h> using namespace std; void func(int,int); bool tf(int,int); void c(); int n,k; char a[110][110]; int cnt20; int main() {cin>>n>>k;for(int i0;i<n;i){for(int j0;j<n;j){cin>>a[i][j];}}func(0,0);cout…

交易账户实现多人下单 分仓系统 交易外接 多指令管理

交易账户实现多人下单 分仓系统 交易外接 多指令管理 指令管家下载&#xff1a;https://raw.githubusercontent.com/LeoGQ/quant/main/CommandKeeper/%E6%8C%87%E4%BB%A4%E7%AE%A1%E5%AE%B6.zip 或项目地址&#xff1a;https://github.com/LeoGQ/quant/tree/main/CommandKeeper…

nvm 管理多版本node

因有多个前端项目&#xff0c;不同项目使用的node版本不一样&#xff0c;所以在本地使用nvm管理不同的node版本。 一、安装nvm 1&#xff09;nvm理解 nvm全英文也叫node.js version management&#xff0c;是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具&#xff…

minIo ubuntu单节点部署

资源准备 minio二进制包 下载地址:https://dl.min.io/server/minio/release/linux-amd64/minio ubuntu-单节点部署 选择一台ubuntu18.04机器10.253.9.41、intel 或者 amd 64位处理器 上传minio到~目录 sudo cp minio /usr/local/bin/ sudo chmod x /usr/local/bin/minio 设…

超声波清洗机哪家好用又实惠?四款亲测表现出色超声波清洗机安利

在当今社会&#xff0c;随着生活节奏的加快&#xff0c;年轻人越来越多地依赖眼镜来纠正视力或保护眼睛。无论是为了时尚搭配&#xff0c;还是因为长时间面对电脑和手机屏幕导致的视力问题&#xff0c;眼镜已经成为许多年轻人日常生活中不可或缺的配件。然而&#xff0c;就在我…

Linux驱动开发(二)--字符设备驱动开发提升 LED驱动开发实验

1、地址映射 在编写驱动之前&#xff0c;需要知道MMU&#xff0c;也就是内存管理单元&#xff0c;在老版本的 Linux 中要求处理器必须有 MMU&#xff0c;但是现在Linux 内核已经支持无 MMU 的处理器了。 MMU的功能如下&#xff1a; 完成虚拟空间到物理空间的映射 内存保护&…

上海亚商投顾:创业板指低开低走 先进封装概念午后走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡调整&#xff0c;深成指、创业板指跌超1%。车路云概念延续强势&#xff0c;长江通信4连板&am…

PFA托盘400*300*42mm耐酸碱透明聚四氟乙烯方盘方槽耐高温厂家供

PFA方盘又称托盘&#xff1a;耐高温、耐腐蚀。 进口透明可溶性聚四氟乙烯方盘。可应用于成膜实验&#xff0c;样品液体脱漏等。能放在电热板上直接加热使用&#xff0c;也可以用于烘箱烘干&#xff0c;实验室腐蚀性样品的转移和搬运&#xff0c;防止腐蚀性液体洒落。 产品特性…

C语言入门系列:数据类型之字面量类型

文章目录 一&#xff0c;什么是字面量二&#xff0c;字面量为什么需要类型&#xff1f;三&#xff0c;变量类型和字面量类型的区别1&#xff0c;作用不同2&#xff0c;方式不同 四&#xff0c;编译器如何推断字面量类型1&#xff0c;整数2&#xff0c;浮点数3&#xff0c;字面量…

YOLOv10改进 | 注意力篇 | YOLOv10引入iRMB

1. iRMB介绍 1.1 摘要:本文重点关注开发现代、高效、轻量级的模型来进行密集预测,同时权衡参数、FLOP 和性能。 反向残差块(IRB)作为轻量级 CNN 的基础设施,但基于注意力的研究尚未认识到对应的部分。 这项工作从统一的角度重新思考高效IRB和Transformer有效组件的轻量级…

渗透测试基础(四) MS08-067 漏洞攻击

1. 漏洞介绍 漏洞描述 Microsoft Windows Server服务RPC请求缓冲区溢出漏洞Windows的Server服务在处理特质RPC请求时存在缓冲区溢出漏洞&#xff0c;远程攻击者可以通过发送恶意的RPC请求触发这个溢出&#xff0c;导致完全入侵用户系统&#xff0c;以SYSTEM权限执行任意指令。…

太湖远大毛利率下滑:研发费用率远低同行,募投项目合理性疑点重重

《港湾商业观察》黄懿 6月20日&#xff0c;浙江太湖远大新材料股份有限公司&#xff08;以下简称“太湖远大”&#xff0c;873743.NQ&#xff09;即将迎来过会。 2023年11月30日&#xff0c;太湖远大所提交的上市申请材料正式获北交所受理&#xff0c;保荐机构为招商证券&…

功能测试 之 单模块测试----添加会员

1.需求分析 点击【添加会员】按钮后&#xff0c;页面跳转至添加会员详细页面。 说明&#xff1a; 会员昵称&#xff1a;必填&#xff0c;长度在20个字符&#xff08;除去空格&#xff09;以内&#xff0c;&#xff08;会员昵称&#xff09;可以重复&#xff1b;登录密码&#x…

关于IntelliJ IDEA 2024.1版本更新的问题

希望文章能给到你启发和灵感&#xff5e; 感谢支持和关注&#xff5e; 阅读指南 序幕一、基础环境说明1.1 硬件环境1.2 软件环境 二、起因三、解决四、总结 序幕 近期&#xff0c;IntelliJ IDEA 推出了全新2024版本&#xff0c;相信很多编程的爱好者或者刚接触编程的小伙伴都会…

gorm简介

【1】ORM: 即Object-Relational Mapping,它的作用是在关系型数据库和对象之间作一个映射&#xff0c;这样我们在具体的操作数据库的时候&#xff0c;就不需要再去和复杂的SQL语句打交道&#xff0c;只要像平时操作对象一样操作它们就可以了。 【2】GORM gorm是go语言的一个orm…

SpringBoot的冬奥会科普平台 LW +PPT+源码

3 平台分析 3.1 平台可行性分析 3.1.1 经济可行性 由于本平台是作为毕业设计平台&#xff0c;且平台本身存在一些技术层面的缺陷&#xff0c;并不能直接用于商业用途&#xff0c;只想要通过该平台的开发提高自身学术水平&#xff0c;不需要特定服务器等额外花费。所有创造及工…

【每日刷题】Day70

【每日刷题】Day70 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 922. 按奇偶排序数组 II - 力扣&#xff08;LeetCode&#xff09; 2. 905. 按奇偶排序数组 - 力扣&…