3个回答
展开全部
有可能因为你设置外键时,两字段的字段类型有差别。
我曾经遇到你一样的问题,找了很久原因,才发现,我的外键字段是勾选上了unsigned的,而我添加的外键字段的时候忘记勾选上,结果怎么也无法建立,你看看是不是同样的原因?
我曾经遇到你一样的问题,找了很久原因,才发现,我的外键字段是勾选上了unsigned的,而我添加的外键字段的时候忘记勾选上,结果怎么也无法建立,你看看是不是同样的原因?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关于MySQL外键的注意事项:
假设A,ID 主键。
B,AID外键。
那么
1、A 和B必须都是支持外键的引擎,如INNODB引擎。
2、ID 和AID 类型必须一致(如果是数值类型,如一种是int,一种却是tinyint,这样属于不一致;但如果一种是unsigned,一种是非unsigned,则其数据类型也属于不一致的;同一类型但长度却不一样:一种是varchar(10),而另一种是varchar(5),这也是属于不一致的......等等)。
3、ID 必须是KEY.
4、foreign key 的名字必须在整个库是唯一的。
5、字符集要一致。
6、已有表记录的,检查表记录是否存在不符合条件的记录。
ps:你用navicat 8.0建立外键失败报上面的错,我猜你的情况肯定属于上面的一种,请见排查下吧.
假设A,ID 主键。
B,AID外键。
那么
1、A 和B必须都是支持外键的引擎,如INNODB引擎。
2、ID 和AID 类型必须一致(如果是数值类型,如一种是int,一种却是tinyint,这样属于不一致;但如果一种是unsigned,一种是非unsigned,则其数据类型也属于不一致的;同一类型但长度却不一样:一种是varchar(10),而另一种是varchar(5),这也是属于不一致的......等等)。
3、ID 必须是KEY.
4、foreign key 的名字必须在整个库是唯一的。
5、字符集要一致。
6、已有表记录的,检查表记录是否存在不符合条件的记录。
ps:你用navicat 8.0建立外键失败报上面的错,我猜你的情况肯定属于上面的一种,请见排查下吧.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询