#1062 - 密钥“PRIMARY”重复输入“1”

问题描述 投票:0回答:8

我在这里完全不知所措。我有两个数据库。一个位于我用于开发的本地主机站点上,另一个位于我用于实时(生产)站点的远程站点上。我通过 phpMyadmin 管理它们。正如我几个月来所做的那样,当我需要更新实时站点时,我转储相关数据库并从本地主机站点导入数据库。

现在,无论我尝试什么,我都会不断收到此错误:

错误 SQL查询:

--
-- Dumping data for table `oc_address_type`
--
INSERT INTO  `oc_address_type` (  `address_type_id` ,  `address_type_name` ) 
VALUES ( 1,  'Billing' ) , ( 2,  'Shipping' ) ;

MySQL 说:文档

#1062 - 键“PRIMARY”的重复条目“1”

我尝试在本地主机上创建一个新的空白数据库并导入该数据库,但结果相同。我已经验证了所有的表和索引,没有发现任何错误。

有任何建议请提出,因为在这个问题得到解决之前我完全沮丧。

顺便说一下,我完全删除了所有表并导入结构和数据。直到今天,这一直有效。

mysql sql phpmyadmin
8个回答
9
投票

您需要使用 drop 语句进行转储。该表存在并且已经有数据,并且您尝试插入更多相同的数据。我对 phpmyadmin 不是 100% 确定,但转储将有一个“添加删除表”语句的选项


7
投票

使用“mysqldump --insert-ignore ...”将数据库转储到本地主机上,然后尝试在实时计算机上使用 phpmyadmin 导入。

或者尝试使用命令行工具连接到您的实时数据库(首先将您的数据库配置为能够从“localhost”之外的其他主机连接!)

然后您可以尝试以下操作:

$ mysql -f -p < yourdump.sql

使用 -f "force" 您可以忽略导入过程中的错误。与在“mysqlimport”中添加“--force”参数相同。


5
投票

问题与您的文件有关 - 您正在尝试使用副本创建数据库 - 在文件顶部您会发现类似以下内容:

如果不存在则创建数据库 *THE_NAME_OF_YOUR_DB* 默认字符集 latin1 COLLATE latin1_general_ci;使用 *THE_NAME_OF_YOUR_DB*;

并且我确信您已经有一个具有此名称的数据库 - 在同一服务器中 - 请检查,因为您正在尝试覆盖!只需更改名称或(更好)删除此行!


1
投票

对我来说,foreign_key_checks 和 truncate table 选项很有用。

SET foreign_key_checks = 0;
TRUNCATE `oc_address_type`;
SET foreign_key_checks = 1;

运行上面的sql脚本,导入后。


0
投票

我也遇到了同样的问题,我的问题是我有一个名为

unique_id
的主键列,当您尝试在该主键列中添加两个相同的值时,它会返回以下错误。

enter image description here enter image description here

主键列的数据都应该是不同的,因此底部

1
我更改为
3
并且错误消失了。

您的 MySql 没有损坏,就像之前的答案和评论一样。


0
投票

您需要删除之前覆盖的所有表格。如果您要完全恢复所有表,请删除所有现有表。


0
投票

我面临

ERROR 1062 (23000) at line 77: Duplicate entry '1' for key 'PRIMARY'
这个问题,我通过使用解决了它。

在文本编辑器中打开 sql 文件;

您只需替换 SQL 查询即可:

--
-- Dumping data for table `product`
--
INSERT INTO  `product` (  `product_id` ,  `product_name` ) 
VALUES ( 1,  'mobile' ) , ( 2,  'pc' ) ;

使用 SQL 查询:

--
-- Dumping data for table `product`
--
INSERT IGNORE INTO  `product` (  `product_id` ,  `product_name` ) 
VALUES ( 1,  'mobile' ) , ( 2,  'pc' ) ;

在此输入图片描述


-1
投票

我也遇到了同样的问题,我删除了表并重建了数据库,然后问题就解决了。

© www.soinside.com 2019 - 2024. All rights reserved.