mysql报错 Duplicate entry

news2024/11/27 15:36:26

在MySQL中,当你尝试执行插入(INSERT)或更新(UPDATE)操作时,如果目标表中存在唯一索引(包括主键索引、唯一约束索引等),并且你要插入或更新的数据在该索引列上的值与表中已有的值重复,这时就会触发“Duplicate entry”错误。

具体来说,以下几种情况会导致“Duplicate entry”错误:

  1. 主键索引重复:尝试插入的记录的主键值与表中已有的主键值相同。
  2. 唯一索引重复:如果表中有一个或多个列被定义为具有唯一约束的唯一索引,而你尝试插入的数据在这些列上的值与现有记录冲突,也会触发错误。
  3. 复合唯一索引重复:当一个索引包含多个列,称为复合索引,并且定义为唯一时,只有当这些列的值组合完全相同时才视为重复。如果插入的数据在这些列的值组合上与现有记录匹配,也会报错。
  4. 插入或更新操作触发的唯一性检查失败:在执行INSERTUPDATE时,即使你没有直接修改唯一索引列,但如果操作间接导致了唯一性约束被违背(比如,更新其他列触发了唯一索引列的级联更新),同样会遇到“Duplicate entry”。

建表:

CREATE TABLE `ent_test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主建',
  `pripid` char(32) NOT NULL COMMENT '主体身份代码',
  `ent_name` varchar(200) NOT NULL DEFAULT '' COMMENT '企业名称',
  `ent_code` char(18) NOT NULL DEFAULT '' COMMENT '统一社会信用代码',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_pripid` (`pripid`),
  UNIQUE KEY `idx_ent_code_ent_name` (`ent_code`,`ent_name`),
  KEY `idx_ent_code` (`ent_code`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COMMENT='主体表'


INSERT INTO ent_test (id, pripid, ent_name, ent_code, create_time, update_at) VALUES (1, '111', '企业1', 'A', '2024-06-08 07:06:04', '2024-06-08 07:19:29');
INSERT INTO ent_test (id, pripid, ent_name, ent_code, create_time, update_at) VALUES (2, '222', '企业2', 'B', '2024-06-08 07:06:04', '2024-06-08 07:19:29');
INSERT INTO ent_test (id, pripid, ent_name, ent_code, create_time, update_at) VALUES (3, '333', '企业3', 'C', '2024-06-08 07:10:21', '2024-06-08 07:19:29');

测试数据:

主键索引
# [23000][1062] Duplicate entry '1' for key 'PRIMARY'
insert into ent_test(id,pripid,ent_name,ent_code) values (1,'4','企业4','D')


唯一键索引
# [23000][1062] Duplicate entry '111' for key 'idx_pripid'
insert into ent_test(id,pripid,ent_name,ent_code) values (4,'111','企业4','D')


复合索引
# [23000][1062] Duplicate entry 'A-企业1' for key 'idx_ent_code_ent_name'
insert into ent_test(id,pripid,ent_name,ent_code) values (4,'444','企业1','A')

 加入ignore,只有最后一条数据没有触发索引报错

insert ignore into ent_test(id,pripid,ent_name,ent_code) values (1,'4','企业4','D');
insert ignore into ent_test(id,pripid,ent_name,ent_code) values (4,'444','企业1','A');
insert ignore into ent_test(id,pripid,ent_name,ent_code) values (4,'444','企业2','A');

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

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

相关文章

C基础与SDK调试方法

REVIEW 上次学习了一下软件使用流程zynq PS点灯-CSDN博客 本次学习一下C编程基础与调试方法 1. 硬件编程原理 小梅哥视频链接: 07_Xilinx嵌入式裸机硬件编程原理_哔哩哔哩_bilibili 对应的课程笔记:【zynq课程笔记】【裸机】【第7课 】【硬件编程原理…

高并发ping多台主机IP

简介 社区或者是大型公司往往有成千上万或者几百台设备,保持设备始终在线对网络运维人员来说至关重要,然而一个一个登录检查,或者一个一个ping并不明智,累人且效率极低,并出错率高。花钱买检测服务当我没说。 shell编…

Frida 环境配置

目录 一、配置 JDK 和 android 环境 二、连接设备 三、配置 Frida 1、frida-server下载 2、配置客户端 3、验证 因为要学习手机端的自动化,所以来学习 Frida 一、配置 JDK 和 android 环境 链接:配置 JDK 和 Android SDK-CSDN博客 二、连接设备…

Vue3【十一】08使用toRefs和toRef

08使用toRefs和toRef toRefs()函数将person对象中的name和age属性转换为响应式引用,并返回一个对象,对象中的name和age属性都是响应式引用,具有响应式功能。 toRef()函数将person对象中的name属性转换为响应式引用,并返回一个响应…

【lesson1】第三方库(jsoncpp,bundle, httplib)的介绍和使用

文章目录 jsoncpp库json 认识jsoncpp 认识jsoncpp 实现序列化jsoncpp 实现反序列化 bundle库bundle库实现文件压缩bundle库实现文件解压缩 httplib 库httplib 库搭建简单服务器httplib库搭建简单客户端 jsoncpp库 json 认识 json 是一种数据交换格式,采用完全独立…

西门子step7脉冲方波

西门子300/400PLC程序可以使用系统时钟脉冲来完成一些定时任务,节省自己写Timer定时器。 定时器字节位定义 默认定义的MB1,则M1.5是1秒定时脉冲方波。 案例 快闪,慢闪。 报警器一闪一闪用。 1分钟计时及1分钟一个脉冲 30分钟计时及30分…

OpenHarmony napi 编译 .so 并打包成 .har

一、前言 最近在搞公司标准产品适配OpenHarmony 平台, 按照行业上的常用方法,在Android 是将底层代码用c 封装成 xxx.so ,然后将其他一部分打包成 xxx.jar。 因此,在OpenHarmony 平台也是打算按照这个模式。正所谓,好…

10 设备树

掌握设备树是 Linux 驱动开发人员必备的技能! 1、什么是设备树 新版本 Linux 中,ARM 相关的驱动全部采用了设备树。Linux-4.1.15 支持设备树。我们了解一下设备树的起源、重点学习一下设备树语法。 设备树:Device Tree,就是“设备”和“树”,描述设备树的文件叫做 DTS(…

[数据集][图像分类]黑色素瘤分类数据集10015张7类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):10015 分类类别数:7 类别名称:[“0”,“1”,“2”,“3”,“4”,…

【LeetCode:312. 戳气球+ 动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【JMeter接口测试工具】第一节.JMeter简介和安装【入门篇】

文章目录 前言一、JMeter简介 1.1 JMeter基本介绍 1.2 JMeter优缺点二、JMeter安装 2.1 JMeter安装步骤 2.2 JMeter环境配置三、项目介绍 3.1 项目简介 3.2 API接口清单总结 前言 一、JMeter简介 1.1 JMeter基本介绍 JMeter 是 Apache 组织使用…

30分钟吃掉 Pytorch 转 onnx

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

论文浅尝 | THINK-ON-GRAPH:基于知识图谱的深层次且可靠的大语言模型推理方法...

笔记整理:刘佳俊,东南大学硕士,研究方向为知识图谱 链接:https://arxiv.org/pdf/2307.07697.pdf 1. 动机 本文是IDEA研究院的工作,这篇工作将知识图谱的和大语言模型推理进行了结合,在每一步图推理中利用大…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:电力巡检智能机器人

聚焦数字经济与双碳经济赛道,专注于提供集中式新能源场站与分布式综合能源数智化整体解决方案,坚持以场站数字化、综合能源数字化双轮驱动发展。依靠专业化人才队伍与丰富的实证基地研究经验,打造成熟、先进的数智新能源研发平台。 在集中式新…

【Git】远程操作 -- 详解

一、理解分布式版本控制系统 我们目前所说的所有内容(工作区、暂存区、版本库等等)都是在本地,也就是在我们的笔记本或者计算机上。而我们的 Git 其实是分布式版本控制系统。 上面这段话是什么意思呢? 可以简单理解为&#xff1…

模型 SCAMPER创新法则

说明:系列文章 分享 模型,了解更多👉 模型_思维模型目录。激发创新的七步思维法。 1 SCAMPER创新法则的应用 1.1 SCAMPER应用之改进自行车设计 一家自行车制造商希望改进其自行车设计,以吸引更多的消费者并提高市场份额。他们决…

【小白专用24.6.8】C# 异步任务Task和异步方法async/await详解

一、什么是异步 同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用…

最值,反转数组——跟之前的差不多

文章目录 数组最值感悟改进 反转数组问题 代码改进 数组最值 package com.zhang; /*求数组最大最小值*/ public class test_arr1 {public static void main(String[] args) {int[] arr {10,66,42,8,999,1};max(arr);min(arr);}public static int max(int[] arr){int max arr…

【云原生_K8S系列】Kubernetes 控制器之 Deployment

在 Kubernetes 中,Deployment 是一种高级控制器,负责管理应用的部署和生命周期。它提供了一种声明性的方式来定义应用的期望状态,并确保实际状态与期望状态保持一致。Deployment 可以自动处理应用的滚动更新、扩展和回滚等任务,是…

GPU风扇不旋转:为什么会发生这种情况以及如何修复

GPU在处理数百万像素时往往会发热,因此冷却风扇静音可能会令人担忧,这是可以理解的!如果你注意到你的GPU风扇没有旋转,下面是如何评估是否存在真正的问题,以及如何解决问题。 风扇停止旋转可能是一个功能,而不是一个Bug 如果GPU没有用于密集任务或没有达到高温,则可以…