外键约束 - 数据库不会导入。- 马真托



我遵循了这里的建议,但是在将数据库导入到本地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

相关内容

  • 没有找到相关文章

最新更新