我已经有两个表(书籍和作者)。两张 table 都已经满了。在 book 表中,author_id 列指向作者。没有外键约束。我想使用此查询添加外键约束:
ALTER TABLE Book
ADD CONSTRAINT fk_book$author
FOREIGN KEY (author_id)
REFERENCES Author(author_id)
这返回给我这个结果: MySQL 返回一个空结果集(即零行)。
我查看了信息模式数据库的约束表,但没有看到任何关于外键的新记录。因此我猜什么也没有发生。
表簿有超过60000条记录。
是否存在任何限制,使我无法在具有多于 xyzvw 记录的表中使用“外键”更改表? 我做错了什么?
我正在运行 MySQL 版本 5.6.17。
最佳答案
请检查以下几点-
- 表引擎应该是innodb。
- 父/子两个表中的链接列的列属性(数据类型、长度等)应相同。
- 引用的列应在父表中建立索引。
- 如果表已有数据,则引用列中的每个子值也应存在于父表中。
如果以上几点都没有问题,那么分享一下mysql抛出的错误详细信息。
关于mysql - 向mysql中的列添加外键不会创建外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32945579/