mysqldbcopy结合外键约束?

时间:2015-05-20 13:39:37

标签: mysql

所以我目前有一个根据SHOW CREATE TABLE具有以下约束的表:

CONSTRAINT `FK_BA62400997790DEE` FOREIGN KEY (`some_id`) REFERENCES `Other_Table` (`id`),
CONSTRAINT `FK_BA624009C8554709` FOREIGN KEY (`someOther_id`) REFERENCES `Yet_Another_Table` (`id`)

但是,当使用mysqldbcopy复制数据库时,我收到以下错误:

ALTER TABLE old_database.OriginalTable add CONSTRAINT `FK_BA62400997790DEE`
FOREIGN KEY (`some_id`,`someOther_id`)
REFERENCES `old_database`.`Other_Table`
(`id`,`id`)
ON UPDATE RESTRICT
ON DELETE RESTRICT
. Error: Query failed. 1005 (HY000): Can't create table 'old_database.#sql-602_4b5' (errno: 150)

这里显然有些问题,但不确定它是什么。显然,它试图将键组合起来?

我正在运行1.3.5版本。

2 个答案:

答案 0 :(得分:4)

1.3.6版本修复了以下可能相关的错误

BUG#17474810: constraint error copying the employees with mysqldbcopy

尝试升级到更高版本,目前最高版本为1.6 - https://launchpad.net/mysql-utilities

答案 1 :(得分:1)

我正在使用MySQL Utilities mysqldbcopy版本1.6.5,它仍然显示我这样的事情:

ERROR: Unable to execute constraint query
ALTER TABLE node5.books add CONSTRAINT `books_ibfk_1`
FOREIGN KEY (`publisher_id`)
REFERENCES `node5`.`publishers`
(`id`)
ON UPDATE RESTRICT
ON DELETE RESTRICT
. Error: Query failed. 1215 (HY000): Cannot add foreign key constraint

然后我发现设置InnoDB的存储引擎可以解决这个问题。

https://github.com/maghead/maghead/commit/b406abf277b525f665966f8e8ec421a229bb13c7

相关问题