3

我从数据库中删除了所有表,然后恢复(导入)备份。之后我得到error #1062 - Duplicate entry '1' for key 1.

我应该重复这个过程吗?或者是其他东西?为什么会出现这个错误?

4

4 回答 4

7

当你从 php admin 导出你的 sql

在此处输入图像描述

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

在此处输入图像描述

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

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

于 2013-08-28T12:52:09.750 回答
5

这表明您在表上有一个 UNIQUE 或 PRIMARY 索引,并且其中一个值存在重复值,这些值将插入到这些索引之一中。

您需要查看导致此错误的特定操作,以找出它试图写入的表和行。希望 phpMyAdmin应该告诉您是哪一行数据导致了问题,不是吗?

一种猜测是您导入的数据与表中已有的某些数据重复,即您可能没有像您认为的那样删除现有数据。但它可以是任意数量的东西。

于 2010-07-19T04:50:07.563 回答
1

从声音来看,转储在它持有的查询中有一个重复的条目。

虽然这不应该发生,但它曾经发生在我身上。为了解决这个问题,我建议两种选择:

  1. 在每个表转储的开头手动删除ADD UNIQUE INDEX和/或。PRIMARY KEY然后创建一个相同的结构表,添加缺失的索引,然后INSERT IGNORE INTO new_tbl (SELECT * FROM tbl)
  2. 在日志中添加INSERT IGNORE插入语句
于 2013-03-31T07:36:34.390 回答
-1

要解决此问题,当您要导出数据库时,您可以尝试取消勾选“格式特定选项:”下的“不要将 AUTO_INCREMENT 用于零值”,见下图:

在此处输入图像描述

于 2013-08-19T02:23:51.910 回答