欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~

首先看下面这张表

Create table student
(sno int(10) unsigned not null,
sname varchar(20) not null,
sex enum('男','女') default null,
sage smallint unsigned,
sdept varchar(10) not null
Primary key (sno)
);

插入三条记录后:

SELECT * FROM students_id.student;

在这张已经建成的STUDENT表中,SNO为Primary Key, 类型为
int(10) unsigned not null

然后,创建下面这张表,其中SNO为外键,参照关系是SC,被参照是STUDENT

Create table SC(
cno char(4) not null,
sno smallint,  //外键
grade smallint,
primary key(cno),
foreign key (sno) references students_id.student(Sno)
);

创建失败

原因是在SC这张表中,作为参照关系,SNO的数据类型没有保持和被参照的表STUDENT完全一致。

应改为如下形式:

Create table SC(
cno char(4) not null,
sno int(10) unsigned not null,
grade smallint,
primary key(cno),
foreign key (sno) references students_id.student(Sno)
);

此时创建成功。需要注意的是,在SQL中,参照关系可以为主键,但在MYSQL中,参照关系不能为主键。
总结:
1.外键不能为新建表的主键;
2.外键所参照的键必须为被参照表的主键;
3.参照表的值需要在所参考的表的那一个主键中已经存在的(即不能为空)
更多相关代码可以访问
我的GITHUB

无法添加外键约束的原因(cannot add foreign key constraint)相关推荐

  1. 外键不兼容问题( in foreign key constraint are incompatible)

    在学习SSH框架的时候,由于在Hibernate定义相应的映射文件时,已经定义了一对多的关系. 可是它们给表的时候没有给出合理的外键,因此在Idea中运行的时候就会出现错误. 因此我们自己在Navic ...

  2. 修改表结构添加外键约束,默认外键名

    2019独角兽企业重金招聘Python工程师标准>>> 修改表结构添加外键约束,默认外键名 alter table SUPPLIER_INFO add foreign key (CR ...

  3. MySQL:错误代码1215 无法添加外键约束的解决思路

    环境说明: ※MySQL ver:5.7 当你需要添加外键约束的时候,却发现mysql报了个1215错误,一脸懵逼的找到这个博客,那你的问题可能就会得到解决. 解决思路 1.检查两个字段的数据类型是否 ...

  4. MySQL可以生成E-R图嘛_使用Navicat for mysql生成E-R图,添加外键约束

    1. E-R图生成 用 mysql的Navicat Premium图形界面工具 . 可以生成E-R图. 把你的数据库选中后右键 , 选择"逆向表到模型" 就可以了 2.添加外键约束 ...

  5. MySQL为表添加外键约束

    为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...

  6. MySQL5添加外键约束错误 (Error Code : 1005)

    MySQL5添加外键约束错误解决方法 当添加MySQL表之间外键约束关系的时候,常常会发生这样的错误: Error Code : 1005 Can't create table './test/#sq ...

  7. mysql添加外键约束的语法_Mysql添加外键约束.

    最近学习遇到一条添加外键约束的语句,记录下来. alter table selection add constraint FK_Reference_1 foreign key(course) refe ...

  8. oracle添加外键约束的方法

    给表添加外键约束分两种情况,一种是刚建表的时候直接添加外键约束,另一种则是表已经创建好了再添加外键约束. 建表时添加外键约束: create table test_a(id number not nu ...

  9. copay mysql数据库_MySQL无法添加外键约束

    因此,我作为项目需求试图将外键约束添加到数据库中,并且它第一次或在两个不同的表上运行,但是在尝试添加外键约束时,我在两个表上遇到错误.我收到的错误消息是: 错误1215(HY000):无法添加外键约束 ...

  10. SQL server 数据库添加外键约束

    use EMIS go alter table t_course_reg add constraint FK_course_reg_t_student --指定约束的名称谁和谁 foreign key ...

最新文章

  1. 《剑指offer》-左旋转字符串
  2. 离线轻量级大数据平台Spark之MLib机器学习库线性回归实例
  3. 压缩命令_Linux环境下文件压缩打包命令详解
  4. 关闭笔记本显示器指定组合键才能打开_笔记本外接显示器怎么设置 笔记本外接显示器设置方法【详解】...
  5. juce中的BailOutChecker
  6. php print r用法,php中echo(),print(),print_r()用法
  7. 编程建立一通讯簿C语言,C语言编程问题用C语言编个学生通讯录管理系统,功能有:①创建通讯 爱问知识人...
  8. Object类的使用
  9. 北京工业大学微型计算机接口技术考试,汇编语言微机原理及接口技术期末试卷含答案...
  10. 数据库系统概论第五版习题解析
  11. java mina框架_Mina框架在项目中的使用(一)
  12. Poco库使用:任务管理器TaskManager
  13. 应用Python把汉语Excel表转换为拼音表格
  14. SitePoint播客#136:政府发布的单个浏览器
  15. Mysql数据库基本知识一(表的操作在二中)
  16. linux部署jia包常用命令
  17. 【C语言】double 关键字
  18. 微信引流软件哪里找?哪个引流软件比较可靠?
  19. python第二周day2
  20. 终于,月入 20000 !!

热门文章

  1. redis 验证消息队列也是写磁盘的
  2. linux 安装vmware-tools详解
  3. 一个简单的 javascript 中的正则表达式例子
  4. Install SQL Server 2008 Setup failure
  5. leecode第二百九十二题(Nim游戏)
  6. LeetCode962. 最大宽度坡
  7. 配置ArcGIS Server使用Windows AD Windows集成身份认证
  8. Python全栈之路——运算符(Day 02)
  9. 使用ThinkPHP框架高速开发站点(多图)
  10. hdu 1333水题