【发布时间】:2017-05-10 09:51:02
【问题描述】:
我最近将一些表移到了一个新数据库中。我让这些表的外键指向旧数据库中的表。
然后我创建了引用表的新版本。我首先尝试修改 FK,以便它们指向新的引用。那没有用,所以我放弃了所有旧的 FK 并尝试创建新的 FK。第一阶段顺利进行。第二阶段虽然每张桌子都失败了,以同样的方式!响应总是这样:
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`ml`.`#sql-d04_2`, CONSTRAINT `FK_excoeff_secID` FOREIGN KEY (`SecurityID`) REFERENCES `securities` (`SecurityID`))
故障立即出现,并且似乎与实际数据无关。在报错信息中,如你所见,表名通常所在的地方现在被一个奇怪的字符串填充了。而且无论引用表是什么,错误都包含 same 字符串。
所有这些都发生在 MySQL WorkBench 的“Alter table”部分,但也作为常规 SQL 查询。
我哪里做错了???
【问题讨论】:
-
不,不是。主要区别在于 1) 表名所在的奇怪字符串。它必须意味着什么,并且 2) 它是我尝试向它们添加 FK 的所有表的 same “表名”。 3) 所有表数据 由等效的外键管理。数据没有冲突!
标签: mysql foreign-keys mysql-workbench