为什么无法添加外键?

为什么无法添加外键?

ALTER TABLE course ADD FOREIGN KEY (major_name) REFERENCES student(major);

添加外键报错,

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

上面这条语句有问题吗?

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

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

2回答
好帮手慕阿满 2019-12-07 09:43:24

同学你好,course表中的major字段有UNIQUE唯一约束,而student表中的major没有,所以添加失败。建议同学要么去掉UNIQUE,要么都添加上UNIQUE再试试。

祝:学习愉快~

好帮手慕阿满 2019-12-06 18:58:50

同学你好,问一下同学course表中major_name字段和student表中的major字段数据类型,约束条件等都一致吗?如果数据类型,非空约束等约束条件不一致,是无法添加外键约束的。

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

  • 提问者 慕沐8221787 #1
    course表中major_name字段:VARCHAR(20) NOT NULL UNIQUE student表中的major字段:VARCHAR(50) NOT NULL 这样不可以吗?
    2019-12-06 20:27:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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