外键约束 - DB不会导入。 - Magento

时间:2011-12-30 23:49:44

标签: mysql magento foreign-keys

我遵循了这里的建议,但在将数据库导入本地XAMPP安装后,我仍遇到同样的问题。

我的sql转储包含在这些标记中:

SET FOREIGN_KEY_CHECKS=0;
// FULL DB DUMP
SET FOREIGN_KEY_CHECKS=1;

即便如此,我收到此错误消息:

Error
SQL query:
ALTER TABLE `mage_catalog_eav_attribute` ADD CONSTRAINT `FK_CATALOG_EAV_ATTRIBUTE_ID` FOREIGN KEY ( `attribute_id` ) REFERENCES `mage_eav_attribute` ( `attribute_id` ) ON DELETE CASCADE ON UPDATE CASCADE ;

MySQL said: Documentation
#1452 - Cannot add or update a child row: a foreign key constraint fails (`myDB_NAME`.<result 2 when explaining filename '#sql-2e0_5a'>, CONSTRAINT `FK_CATALOG_EAV_ATTRIBUTE_ID` FOREIGN KEY (`attribute_id`) REFERENCES `mage_eav_attribute` (`attribute_id`) ON DE) 

任何人都可以帮助我了解禁用这些检查还需要什么,或者防止出现此错误吗?

我正在运行Magento 1.4.2,并通过xampp使用phpmyadmin导入。

2 个答案:

答案 0 :(得分:3)

当我使用phpMyAdmin MySQL导出并将其放入另一个phpMyAdmin接口时,我发现预先存在的表导致了约束问题。由于关键限制,删除表格也存在问题。

导入时,请确保当前数据库表没有键约束。我通过放弃表格来做到这一点。

为了删除表,我通过在phpMyAdmin的SQL屏幕中为相关数据库执行这样的SQL代码来关闭约束检查。

SET foreign_key_checks = 0;
DROP TABLE civicrm_acl;
... all of the problem tables with their constraints...
DROP TABLE civicrm_worldregion;
SET foreign_key_checks = 1;

(后者SET很好管家)

然后,我能够进行导入。当我查看我的MySQL导出时,它在数据到位后在导入结束时添加了约束。如果您的MySQL导入在数据到位之前放入约束,那将阻止导入完全正常工作。

答案 1 :(得分:1)

不要通过Phpmyadmin导入。它通常很糟糕。使用命令行。

这应该有效:

cat your_mysql_dump_file.sql | mysql -uyour_user -p myDB_NAME