无法添加外键

无法添加外键

使用: ALTER TABLE course ADD FOREIGN KEY (major_name) REFERENCES student(major);  添加外键,Navicat报错:[Err] 1215 - Cannot add foreign key constraint。表结构如下

http://img1.sycdn.imooc.com//climg/5db04378090c5b6409670802.jpg

两张表的存储引擎都为Innodb,类型都为varchar(30)。我查了有说是因为:设置外键时“删除时”设置为“SET NULL”(我在语句中没有添加)。还有说是因为关联的主表字段不是主键(可是老师的案例中就不是主键啊)到底怎么解啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕柯南 2019-10-24 11:12:36

同学是想使用将student表中major设置为外键吗?同学你在这里关联的字段不一定要为主键,但是必须是另一个表中的唯一值。所以报错了呢。因此同学的course中的major_name 列必须为唯一字段。另外同学这里不需要设置外键也是可以的。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师