2013-04-07 182 views
5

我已经迁移的mgento安装执行以下操作:Magento的SQLSTATE [23000]:完整性约束违规:1062重复项 '363624' 关键 '主要'

  1. 复制所有文件
  2. 出口分贝
  3. 使用MySQL工作台进口分贝
  4. 改变了BASE_URL的新域
  5. 更新local.xml中的正确设置

现在即时得到:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '363624' for key 'PRIMARY' 

...我已经寻找这个关键363624分贝,但它不重复的消息说

我怎样才能解决这个问题?

+0

哪张桌子给你这个错误? – seanbreeden 2013-04-07 23:08:08

回答

8

它不是重复的,而是必须尝试来复制它。

你是如何导出数据库的?我会检查转储的SQL文件的顶部是否有“SET FOREIGN_KEY_CHECKS = 0;”或类似的行。

如果没有,我会删除数据库,这行添加到文件的顶部:

SET FOREIGN_KEY_CHECKS = 0;

...和这条线至底部:

SET FOREIGN_KEY_CHECKS = 1;

...然后再试一次。

+0

嗨我收到了同样的错误,但我的问题是我不能删除数据库,因为这个问题最近开始。我有太多的产品和数据。你如何将这个解决方案应用于我的情况?谢谢。 – 2014-05-19 11:58:19

+0

你不觉得这是一个坏主意,禁用外键检查?实际上这是有原因的。这不能是一个长期的解决方案。 – Chiragit007 2014-12-04 11:15:24

+0

这个解决方案和Oscars解决方案的结合对我很有帮助 – richelliot 2016-10-14 10:43:18

5

我得到了同样的错误。

对我来说,事实证明,出口过程持续了很长时间,网站仍然“活着”,导致出口的末端与开始时不同步。

具体来说,'log_visitor_info'表比另外一些相关的访问者日志表多了100多条记录,所以数据库正试图从另一个表中创建一个记录ID,这个表在这里已经存在。

我刚刚从这个特定的表中删除了最近的100个左右的记录,并且没有错误再次运行。 另外,它看起来像你可以在f5键上捣碎,直到你增加已经存在的ID并且Magento会重新开始工作。

我怀疑在导出之前将商店置于维护模式可能有助于解决此特定错误。

+2

这个答案非常有帮助 - 我通过比较log_visitor_info表的Id和错误msg中生成的Id来发现它确实存在大约10个不同步的记录。因此,按照您的建议约点刷新。 10次​​为我修好了。 – 2014-12-04 01:15:42

27

帮我(清除某些表):

输入下面的SQL查询你的Magento数据库和运行:

TRUNCATE dataflow_batch_export ; 
TRUNCATE dataflow_batch_import ; 
TRUNCATE log_customer ; 
TRUNCATE log_quote ; 
TRUNCATE log_summary ; 
TRUNCATE log_summary_type ; 
TRUNCATE log_url ; 
TRUNCATE log_url_info ; 
TRUNCATE log_visitor ; 
TRUNCATE log_visitor_info ; 
TRUNCATE log_visitor_online ; 
TRUNCATE report_event ; 
+0

这工作。图中日志表得到更新中间导出导致不一致。 – 2015-02-11 17:35:17

+0

这个解决方案和redjam13的解决方案相结合,对我来说很有效 – richelliot 2016-10-14 10:43:04

0

在我的情况下,问题是UTF-8无文本BOM编码编辑。我已经使用BOM更改为UTF-8,并且一切正常。

+0

考虑到Magento推荐的没有BOM的UTF-8,所有这一切都很奇怪。 – versedi 2015-06-07 22:49:19

0

如果显示为表'cataloginventory_stock_item' having 'UNQ_CATALOGINVENTORY_STOCK_ITEM_PRODUCT_ID_STOCK_ID' index,

的错误,则请确保您从您的脚本通过不同的产品SKU。

+3

如果您提供了有关问题原因的更多解释,以及*解决方案如何解决问题,这可能是一个很好的答案。我不确定这是如何解决这个问题的,因为它是关于迁移magento的。 – 2016-11-10 13:23:26

0

在你的magento数据库中运行这个sql查询。

TRUNCATE dataflow_batch_export ; 

TRUNCATE dataflow_batch_import ; 

TRUNCATE log_customer ; 

TRUNCATE log_quote ; 

TRUNCATE log_summary ; 

TRUNCATE log_summary_type ; 

TRUNCATE log_url ; 

TRUNCATE log_url_info ; 

TRUNCATE log_visitor ; 

TRUNCATE log_visitor_info ; 

TRUNCATE log_visitor_online ; 

TRUNCATE report_event ; 

首先你必须检查'log_visitor_info'表结构。在这个表中,'visitor_id'字段应该默认值为null。如果默认值设置为任何你应该运行下面的查询,否则你留下它的下面的查询只是执行上述查询。

ALTER TABLE `log_visitor_info` CHANGE `visitor_id` `visitor_id` BIGINT(20) UNSIGNED NOT NULL COMMENT 'Visitor ID'; 
相关问题