密钥' PRIMARY'重复输入X,但未找到重复项

时间:2015-10-20 09:50:52

标签: mysql primary-key

我运行此代码:

INSERT INTO x.contacts (`id`, `name`, `address`) SELECT `id`, `name`, `address` FROM y.contacts;

它给了我以下错误:

  

错误:重复输入' 6323'关键' PRIMARY'

当我在y.contacts表中搜索ID 6323时,它只出现一次。

那我为什么会收到这个错误?

4 个答案:

答案 0 :(得分:1)

自动增量列中有一个ID为0的记录导致了问题。

答案 1 :(得分:0)

您需要检查表.contacts,看起来表格中已经有值6323。

如果您签入表.contacts,您会发现ID为6323的行已经存在,因此错误。

答案 2 :(得分:0)

发生错误是因为您尝试复制现有行。该ID已存在一次,在执行您的命令时,您将其复制。

答案 3 :(得分:0)

我遇到了同样的错误,但是没有ID记录。在我的情况下REPAIR TABLE tablename修复了问题。

mysql> repair table items ;
+------------------+--------+----------+--------------------------------------------+
| Table            | Op     | Msg_type | Msg_text                                   |
+------------------+--------+----------+--------------------------------------------+
| mydb.items       | repair | warning  | Number of rows changed from 56263 to 56264 |
| mydb.items       | repair | status   | OK                                         |
+------------------+--------+----------+--------------------------------------------+
2 rows in set (0.40 sec)

MySQL版本:

% mysql --version                                                                                               /www/stackful.com
mysql  Ver 14.14 Distrib 5.1.47, for redhat-linux-gnu (i386) using readline 5.1