【问题标题】:Importing SQL file "Duplicate entry '0' for key 'PRIMARY'"导入 SQL 文件“键 'PRIMARY' 的重复条目 '0'”
【发布时间】:2013-01-19 20:49:28
【问题描述】:

我知道有人回答了类似的问题,但请尝试帮助我。

我正在使用 PHPMyAdmin 将 MyBB 数据库的备份导入到新主机中。尝试导入 .sql 文件时,出现以下错误:

SQL 查询:

INSERT INTO mybb_datacache(  `title` ,  `cache` ) 
VALUES (

'internal_settings',  'a:1:{s:14:\"encryption_key\";s:32:\"rrvohvVATtOauucNTmEXAmvNvbw9ujvb\";}'
);

MySQL said: 

#1062 - Duplicate entry 'internal_settings' for key 'PRIMARY'

我无法找出问题所在。我已经清空了所有表并全新安装了四次数据库。我整天都在想办法解决这个问题,这非常令人沮丧。

(链接已删除)

请帮帮我。我该如何解决这个问题?

【问题讨论】:

  • 您需要从托管该文件的位置提取该文件。我猜您不知道该文件中的内容,但为了您的工作以及您正在帮助的任何公司/网站,请立即删除该文件!
  • 为什么标题中的错误信息与问题正文中的错误信息不同?
  • 标题中提到的特定消息的可能原因是主键列的类型错误:当应该是字符串时设置为数字。
  • @Jaxidian 对不起。沮丧,甚至没有意识到我刚刚做了什么。

标签: mysql sql database phpmyadmin


【解决方案1】:

确保设置为PRIMARY KEY 的列设置为AUTO_INCREMENT

【讨论】:

  • 是的,听起来 PK 要么被默认为 NULL,要么被默认为其他一些不唯一的默认值。
  • 这发生在多列中。有什么我可以不重新上传的。每次都出现?
  • 我可以在我的编辑器中打开它并进行查找和替换吗?一定是什么……
  • 在这种情况下,PRIMARY 键似乎 不是 自动增量列,而是数据(至少,从问题正文中的描述来看是这样的如果不是来自问题的标题)。
【解决方案2】:

从问题的当前版本来看,mybb_datacache 表的title 列似乎是主键,并且其中已经有一条值为'internal_settings' 的记录。如果确实如此,那么问题在于所有记录的主键都必须具有唯一值。

【讨论】:

    【解决方案3】:

    我遇到了这个问题,我发现了问题所在。

    问题是,该字段不能为空。即,如果您要更改表以添加主键,请确保该字段中有一些值。或者如果你正在导入一个 sql 文件,请确保文件中的该字段具有一些值....

    这解决了我的问题...

    【讨论】:

      【解决方案4】:

      当你从 php admin 导出你的 sql 时

      选择“自定义”作为导出方式”

      然后,不要选择“插入”,而是选择“更新”

      这将执行更新语句并防止重复插入。

      【讨论】:

        猜你喜欢
        • 2013-09-03
        • 2017-08-07
        • 2018-02-20
        • 2014-09-04
        • 2023-03-07
        • 1970-01-01
        • 2018-07-11
        • 2012-08-24
        相关资源
        最近更新 更多