magento SQLSTATE [23000]:完整性约束违规:1062重复条目'363624'用于键'PRIMARY'

lio*_*r r 6 mysql magento

我已经迁移了一个mgento安装,执行以下操作:

  1. 复制了所有文件
  2. 导出数据库
  3. 使用mysql workbench导入数据库
  4. 将base_url更改为新域
  5. 将local.xml更新为正确的设置

现在我得到:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '363624' for key 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)

我已经在数据库中搜索了这个密钥363624,但它没有像消息那样重复

我怎么能解决这个问题?

小智 31

这有助于我(清除一些表格):

输入您的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 ;
Run Code Online (Sandbox Code Playgroud)


red*_*m13 7

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

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

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

SET FOREIGN_KEY_CHECKS = 0;

......这条线到底部:

SET FOREIGN_KEY_CHECKS = 1;

...然后再试一次.


小智 6

我得到了同样的错误.

对我来说,事实证明,出口花费了很长时间,网站保持"现场"状态,导致出口结束与开始时不同步.

具体来说,'log_visitor_info'表比其他一些相关的访问者日志表有大约100个记录,因此DB正在尝试从此处已存在的另一个表创建记录ID.

我刚刚从这个特定的表中删除了最后100条左右的记录,并且事情再次起作用而没有错误.或者看起来你可以在f5键上进行混搭,直到你超过那个已经存在的ID并且Magento将再次开始工作.

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

  • 这个答案非常有用 - 我通过将log_visitor_info表的ID与错误消息中生成的Id进行比较发现它确实大约有10条记录不同步.因此,按照您的建议大约进行刷新.10次​​为我修好了. (2认同)