mysql - DB 导入已取消 : "Cannot add foreign key constraint"

标签 mysql database import

我正在尝试将 magento 商店移至我的服务器。不幸的是,我不是后端开发人员 - 只有 CSS、HTML 和其他前端开发人员。希望有人能给我建议,告诉我该怎么做。

我从一个机构获得了一个数据库转储,我想导入它并停止并显示错误消息:

BigDump:交错 MySQL 转储导入器 v0.36b 处理文件:2018-03-27_XXXXXXXXX.sql

从第 1 行开始

Error at the line 385: ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Api Sessions';

Query: CREATE TABLE `api_session` (
`user_id` int(10) unsigned NOT NULL COMMENT 'User id',
`logdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Login date',
`sessid` varchar(40) DEFAULT NULL COMMENT 'Sessioin id',
KEY `IDX_API_SESSION_USER_ID` (`user_id`),
KEY `IDX_API_SESSION_SESSID` (`sessid`),
CONSTRAINT `FK_API_SESSION_USER_ID_API_USER_USER_ID` FOREIGN KEY (`user_id`) REFERENCES `api_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Api Sessions'

MySQL: Cannot add foreign key constraint

我真的不知道该怎么做,但我愿意学习该怎么做。谁能告诉我问题出在哪里?

==============

我设法使用另一个脚本导入数据库。我无法提供现在有效的解决方案。

最佳答案

我猜它引用的表“api_user”此时不存在?显然更有可能,因为 api_user 按字母顺序排列在 api_sessions 之后。

您可以尝试将结构与数据分离(如果您的导入包含任何数据),然后在“导入并出错时继续”模式下重复运行该结构,希望它能够构建 api_user 并在稍后传递 api_sessions。如果你有循环依赖,这将不起作用。

你可以尝试这样的事情 How to temporarily disable a foreign key constraint in MySQL?作为一个更好的解决方案可能......假设我的猜测是正确的。检查它试图在外键约束中引用什么。

关于mysql - DB 导入已取消 : "Cannot add foreign key constraint",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561263/

相关文章:

mysql - 多条SQL连接困难查询

php - MYSQL查询双JOIN

php - MySQL语法错误,第一个项目

database - Elasticsearch查询返回所有记录

reactjs - 无法在 redux 中使用 applyMiddleWare

mysql - 如何使用 Knex 将函数应用于 where 子句的值?

mysql - 如何实现拥有超过 64 个成员的 MySQL SET 概念?

mysql - 如何编写 MySQL 连接查询

python - 始终在 python 脚本的开头导入相同的列表

r - R 包中的变量标签 Haven with SPSS