我有表,有些列应该是外键;我怎么能强迫这种关系?
ALTER TABLE tbl1 ADD CONSTRAINT fk_user_id FOREIGN KEY(user_id) 引用tbl2(user_id);
但它给了我以下错误:
error code:1215: cannot add foreign key constraint!
这种情况下的解决方案是什么?
答案 0 :(得分:1)
您可能会遇到外键约束错误的原因:
检查这些。
此外,您应该在运行DDL之前设置foreign_key_checks=0
,这样您就可以按任意顺序创建表,而不需要在相关子表之前创建所有父表。
答案 1 :(得分:0)
如果user_id的任何现有值与外表上的值不匹配或为null,则您将无法强制执行不可为空的外键约束。在强制执行约束之前,应首先将列值更新为引用的正确外部数据。