MySql报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘的解决方案

 更新时间:2023年10月23日 10:22:07   作者:小猫娃来啦  
经常遇到这个问题,今天我把这个问题记录下来,以后如果有其他人遇到相同的问题,不至于困惑,在操作数据库的时候,经常会出现Duplicate entry ‘10’ for key 'PRIMARY’这样的报错,本文将给大家讲讲如何解决这个问题,需要的朋友可以参考下

翻译错误

经常遇到这个问题,今天我把这个问题记录下来,以后如果有其他人遇到相同的问题,不至于困惑。我自己也作为一种学习中的出错记录,错题本,提醒自己。

在操作数据库的时候,经常会出现Duplicate entry ‘10’ for key 'PRIMARY’这样的报错,这是什么意思呢?
我去翻译了一下,翻译结果如下:

在这里插入图片描述

所以这种问题的出现就代表键名重复了

先正常制作表格

定义表格表头的时候,一般会设置id为主键(因为id具有唯一性,且简单)

在这里插入图片描述

以下是用Navicat Premium 16制作的一个表格

在这里插入图片描述

错一遍(体验报错)

在此表格中,id已经有1,2,3,4,5,6,7,8了,如果此时我插入的数据主键是8,就会出现如下结果:

在这里插入图片描述

是的,报这个错了。因为8这个主键是存在的,现在插入的数据,主键还是8,就造成了主键重复的冲突,所以会报这个错,同时数据也是插入不进去的。

找到报错原因,并改正

如果我们把需要插入的数据主键改成9,则:

在这里插入图片描述

很显然插入成功了。再重新打开表看一下:

在这里插入图片描述

ok,数据是插入成功的。

其他可能造成报错的情况

还有一种情况会触发这个报错。就以上面的例子来说,在没有id为9的这条数据时,我插入这条数据,没有问题,不会报错,也能插入成功。但如果再运行刚刚那句话,就不行了。因为9已经插入了,再运行一遍,就等于再插入主键为9的这条数据,这就又会造成主键冲突。

还有一种情况也会触发这个报错,就是没有设置主键递增
要么用可视化工具Navicat Premium 16勾选自动递增。
要么在命令行里设置主键递增。

在这里插入图片描述

在这里插入图片描述

总结解决方案

综上所述,这个错误提示是因为在插入数据时,插入了一个已经存在的主键值,导致冲突。解决方案如下:

  • 确认是否插入了重复的数据,可以通过查询数据库来查看是否有重复的主键值。
  • 如果是插入重复数据导致的错误,可以通过修改数据或者删除重复数据来解决。
  • 如果是其他原因导致的错误,可以尝试重新创建表格或者修改表格结构来解决。

以上就是MySql报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘的解决方案的详细内容,更多关于Duplicate entry ‘10‘ for key ‘PRIMARY‘的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL复制表结构和内容到另一张表中的SQL语句

    MySQL复制表结构和内容到另一张表中的SQL语句

    这篇文章主要介绍了MySQL复制表结构和内容到另一张表中的SQL语句,需要的朋友可以参考下
    2014-07-07
  • 将图片储存在MySQL数据库中的几种方法

    将图片储存在MySQL数据库中的几种方法

    今天小编就为大家分享一篇关于将图片储存在MySQL数据库中的几种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql中limit的用法深入分析

    mysql中limit的用法深入分析

    本篇文章是对mysql中limit的用法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql 5.7.18 winx64安装配置方法图文教程

    mysql 5.7.18 winx64安装配置方法图文教程

    这篇文章主要为大家详细介绍了windows7下mysql 5.7.18 winx64安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • MySQL数据类型enum 枚举类型

    MySQL数据类型enum 枚举类型

    这篇文章主要介绍了MySQL数据类型enum 枚举类型,文章围绕主题展开详细的内容介绍,需要的小伙伴可以参考一下
    2022-06-06
  • Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式(txt)的SQL文件,通过Mysql Source命令能够将SQL文件导入Mysql数据库中,下面通过Mysql导入导出SQL实例详解Mysqldump和Source命令的用法
    2012-09-09
  • MySQL数据库迁移到Oracle数据库的完整步骤记录

    MySQL数据库迁移到Oracle数据库的完整步骤记录

    在研发过程中可能会用到将表数据库中的表结构及数据迁移到另外一种数据库中,比如说从mysql中迁移到oracle中,这篇文章主要给大家介绍了关于MySQL数据库迁移到Oracle数据库的完整步骤,需要的朋友可以参考下
    2024-06-06
  • mysql数据库分区的使用

    mysql数据库分区的使用

    MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下
    2025-01-01
  • MySQL用命令行运行sql文件的详细图文教程

    MySQL用命令行运行sql文件的详细图文教程

    最近重新踩了一下mysql 这边的坑,记录一下自己忽略的地方,下面这篇文章主要给大家介绍了关于MySQL用命令行运行sql文件的详细图文教程,文中通过实例代码的非常详细,需要的朋友可以参考下
    2023-01-01
  • MySQL函数date_format()日期格式转换的实现

    MySQL函数date_format()日期格式转换的实现

    本文主要介绍了MySQL函数date_format()日期格式转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论