我有表,其中一些列应该是外键;我怎样才能强制这种关系?
ALTER TABLE tbl1 ADD CONSTRAINT fk_user_id FOREIGN KEY (user_id) references tbl2(user_id);
但它给了我以下错误:
error code:1215: cannot add foreign key constraint!
这种情况的解决方案是什么?
最佳答案
可能出现外键约束错误的原因:
- 您没有使用 InnoDB 作为所有表的引擎
- 您正在尝试引用目标表上不存在的键。 确保它是另一个表上的键(它可以是主键) 或唯一键)
- 列的类型不相同(异常(exception)是列 引用表上的可以为空)。
检查这些。
此外,您应该在运行 DDL 之前设置 foreign_key_checks=0
,以便可以按任意顺序创建表,而不需要在相关子表之前创建所有父表。
关于mysql - 强制现有表中的外键关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621259/