当前位置:网站首页>Duplicate entry ‘XXX‘ for key ‘XXX.PRIMARY‘解决方案。
Duplicate entry ‘XXX‘ for key ‘XXX.PRIMARY‘解决方案。
2022-08-02 02:46:00 【m0_67403013】
mysql insert时报错:Duplicate entry ‘XXX’ for key ‘XXX.PRIMARY’
今天在插入数据时,出现一个错误
com.jfinal.plugin.activerecord.ActiveRecordException:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry 'xxxxxx' for key 'xxxx.PRIMARY'
网上查看说是主键冲突了,但是查看数据库并没有,把所有数据清空,或者把表删了之后,在重新建也还是报同样的错。
…
…
…
最后的结果方案:
- 方案一:设置主键自增,适合主键为int类型(我的主键是varchar)
- 方案二:把insert into 表名() values();修改为:insert ignore into 表名() values(); (问题解决)
MySQL 提供了Ignore 用来避免数据的重复插入.
IGNORE :
若有导致unique key 冲突的记录,则该条记录不会被插入到数据库中.
MySQL INSERT IGNORE 详解请移步:MySQL INSERT IGNORE
原因:这是由于表中对应字段设置了唯一索引,在我们进行逻辑删除时,并没有真正的删除,只是标记为删除状态而已,
当我们再进行新增的时候,由于有唯一索引的限制,导致我们不能进行新增成功,所以报错.
解决方法1:
如果允许的话,把数据库中该字段的唯一索引限制去掉,这样后端可以进行逻辑删除,新增时即使与标记为删除的记录的字段值相等,由于没有唯一索引的限制,可以正常新增
解决方法2:
不需要去掉数据库中的唯一索引限制,但是当后端开发进行删除操作的时候,执行的是物理删除的sql语句(真正的删除),而不是逻辑删除,同时后端用逻辑判断,去查询数据库中是否有相同的编号存在,如果存在,则不允许新增,如果不存在,则可以新增
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢

数仓:为什么说 ETL 的未来不是 ELT,而是 EL (T)

qt点云配准软件

Good News | AR opens a new model for the textile industry, and ALVA Systems wins another award!

【每日一道LeetCode】——9. 回文数

字典常用方法

Entry name 'org/apache/commons/codec/language/bm/gen_approx_greeklatin.txt' collided

Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案

Flask之路由(app.route)详解

Service discovery of kubernetes

Talking about the "horizontal, vertical and vertical" development trend of domestic ERP
随机推荐
【LeetCode】94.二叉树的中序遍历
灰度传感器、、、diy原理。。图
Oracle19c安装图文教程
永磁同步电机36问(二)——机械量与电物理量如何转化?
PHP live source code to achieve simple barrage effect related code
2022年NPDP考完多久出成绩?怎么查询?
递归检查配置项是否更变并替换
analog IC layout-Design for reliability
2022.8.1-----leetcode.1374
NIO's Sword
KICAD 拉线宽度无法修改,解决方法
Use DBeaver for mysql data backup and recovery
【CNN记录】tensorflow slice和strided_slice
The state status is displayed incorrectly after the openGauss switch
Recursively check if a configuration item has changed and replace it
Entry name 'org/apache/commons/codec/language/bm/gen_approx_greeklatin.txt' collided
Chopper webshell feature analysis
机器人领域期刊会议汇总
analog IC layout
【Unity入门计划】2D Game Kit:初步了解2D游戏组成