我无法在我的数据库中添加外键约束。
我在所有表上运行InnoDB引擎,并确保两个表中的数据类型和大小相同。
另外,我尝试过使用MySQL命令行,phpMyAdmin和MySQL工作台,但没有运气。
由于在MySQL工作台中不允许我检查索引列,也没有选择引用列,我还有另一个问题。
我还应该寻找其他什么吗?
我几乎在所有表中都有测试数据,这有关系吗?
编辑:当我看到一个错误时,通常是“#1005 - 无法创建表'db_name。#sql-43d_8e'(错误号:150)”,这谈到了数据不匹配,根据文档.. 。否则MySQL Workbench不允许我这样做,所以我不知道这个问题。
答案 0 :(得分:4)
您还应检查以确保列匹配。我遇到的问题是我没有注意到一个是签名的int而另一个是未签名的。
答案 1 :(得分:1)
如果您有数据,那就无法与外键正确链接,例如您在“comments”中输入了id_article = 10,但是您没有带有id的“articles”条目= 10 ..在这种情况下,你不能添加外键
答案 2 :(得分:1)
我有同样的问题,引用表中的主键的数据类型和外键是相同的但我无法创建第二个表,因为mysql无法添加外键约束。由于某种原因,这是我创建表格的顺序。如果我创建了第一个表,添加了数据然后创建了第二个表,如果我创建第一个表和第二个表,我将数据添加到第一个表之前没有错误消息,则发生错误。