我遵循了这里的建议,但是在将数据库导入到本地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。
当我将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导入在数据到位之前添加了约束,这将阻止导入完全工作。
不要通过Phpmyadmin导入。它通常效果很差。使用命令行
这个应该可以工作:
cat your_mysql_dump_file.sql | mysql -uyour_user -p myDB_NAME