复制InnoDB数据库时的外键问题

时间:2013-06-19 23:52:06

标签: mysql foreign-keys innodb mysqldump

我正在与InnoDB MySQL数据库进行摔跤没有太多运气(通常我是MyISAM的家伙)。我正在尝试从生产数据库中获取内容并将其复制到开发数据库中(例如,相同的模式等...只是连接到不同的网站)。通常在MyISAM中我会这样做:

1) Dump the prod databse: mysqldump -u root -p prod_db_name > prod_dump.sql
2) Log into mysql terminal; 
3) drop database dev_db_name;
4) create database dev_db_name;
5) exit mysql terminal
6) mysql -u root -p dev_db_name < prod_dump.sql

et voila。

然而,当我在这种特殊情况下这样做时,一切似乎都很好,直到我尝试使用挂钩到新填充的开发人员数据库的网站更新内容片段;在这种情况下,我收到此错误:

Error Number: 1452

Cannot add or update a child row: a foreign key constraint fails (`abbott/logs`, CONSTRAINT `fk_logs_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`))

显然这与users表有关。虽然我不确定它是否有所作为,但有一个因素可能是我无法控制填充users表的用户ID;它们来自外部单点登录/联合API。

我尝试过(盲目猜测)在mysqldump命令中添加--single-transaction;以及设置FOREIGN_KEY_CONSTRAINTS = 0,然后手动删除每个表&amp;再次打开它们然后读取转储(例如,而不是丢弃整个数据库)。

非常感谢任何帮助。 里斯。

0 个答案:

没有答案