13

I am at a complete loss here. I have two databases. One on my localhost site that I use for development and one on my remote site that I use for my live (production) site. I manage both of them through phpMyadmin. As I have been doing for months now, when I need to update the live site, I dump the related database and import the database from my localhost site.

Now, no matter what I try, I keep getting this error:

Error SQL query:

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

MySQL said: Documentation

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

I tried creating a new blank database on my localhost and importing into that but same results. I have validated all of the tables and indexes and cannot find anything wrong there.

Any suggestions please as I am completely down until this gets resolved.

By the way, I am completely dropping all tables and importing structure and data. This has always worked until today.

4

7 回答 7

9

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

于 2013-08-02T15:59:24.840 回答
7

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

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

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

$ mysql -f -p < yourdump.sql

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

于 2013-12-19T23:55:09.833 回答
5

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

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

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

于 2013-08-25T09:34:26.857 回答
1

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

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

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

于 2016-12-13T16:01:22.617 回答
0

我遇到了同样的问题,我的问题是我调用了一个主键列unique_id,当您尝试在该主键列中添加两个相同的值时,它会返回以下错误。

在此处输入图像描述 在此处输入图像描述

一个主键列的数据都假设是不同的,所以1我改变了底部3并且错误消失了。

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

于 2014-03-23T00:27:03.843 回答
0

您需要删除您正在覆盖的任何以前的表。如果您正在对所有表进行完全还原,请删除所有现有表。

于 2016-02-11T21:55:21.893 回答
-1

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

于 2018-05-03T06:47:09.313 回答