Mysql外键约束foreign key
2019独角兽企业重金招聘Python工程师标准>>>
前提:使用外键功能,存储引擎需为InnoDb类型;
一、建表时同时创建外键
1、情景,班级表 和 学生表,一对多的关系。
2、班级表称A主表,学生表称B从表,当B表中有个字段使用了A表主键作为字段内容,此字段称为外键;
3、首先创建班级表,A表
4、创建学生表,B表,使用A表的id作为其外键
注:1、外键字段自动添加了索引
2、在没有明确指定约束名时,会自动分配 一个约束名
5、为什么说外键是约束
在默认的严格模式下:
从表中外键字段不能使用主表中不存在的主键ID
如果从表使用了主表字段中的数据后,主表这些记录将无法删除
二、删除外键
语法:alter table 从表名称 drop foreign key 外键的约束名(上面的约束名为 studentinfo_ibfk_1)
注:删除外键后,原外键的索引会保留。
三、手工添加外键
格式:alter table 从表名 add foreign key (从表中字段名称) references 主表名 (主表的主键字段名)
四、外键字段的联动操作
上面看到,从表外键字段使用了主表的id,在主表中该id记录删除不了,实际并不一定不能删除
外键约束分3种情况:
stric,严格模式,默认的方式,不允许修改和删除
cascade,级联,主表修改或删除,从表跟着变化
set null,设置为null,主表数据删除,从表外键字段变为null
比较合理的方式是:
on update cascade
on delete set null
我们在定义外键时,不一定非要用严格模式,可以根据需求,修改或删除采用 级联 或 set null
注:如果外键字段在删除时使用的是set null 方式,一定要看一下外键字段是否是not null,如果是,要修改为允许为null
也可只设置一个 on update casade;只修改生效,不能删除啦
例:操作演示,修改主键,从表主键自动被修改。
操作演示:删除主表ID
转载于:https://my.oschina.net/selly1025/blog/666973
Mysql外键约束foreign key相关推荐
- MySQL外键约束-foreign key
一.什么是外键 外键也称之为外键约束 : 关键字 foreign key 外键:外面的键,一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表) ...
- 外键约束(foreign key) [MySQL][数据库]
外键约束(FOREIGN KEY(字段) REFERENCES 主表名(字段)) 外键约束的作用: 限定某个字段的引用完整性 我们之前在讲数据完整性的时候就提到过引用完整性 引用完整性(eg: 员工所 ...
- SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c 别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...
- mysql外键约束cascade_mysql外键约束foreign key ON DELETE CASCADE ON UPDATE CASCADE
正 文: 一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强.关于完整 ...
- mysql外键(FOREIGN KEY)简单讲解与演示
前言 上数据库遇到了个叫外键的东西,一开始不是很懂,后来懂了,故记录一下... 外键是什么 外键,即外部的键 ,用来保证数据一致性,那么什么是数据的一致性呢? 假设某带学有如下两张表,描述,学生和专业 ...
- mysql 外键(foreign key)的详解和实例
一.基本概念 1.MySQL中"键"和"索引"的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用 ...
- mysql 外键约束_MySQL之外键约束(FOREIGN KEY)
定义: MySQL外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列.一个表可以有一个或多个外键. 外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每 ...
- mysql外键约束怎么写_mysql外键约束怎么写
mysql外键约束的写法:[[CONSTRAINT ] FOREIGN KEY 字段名 REFERENCES 主键列1].外键约束是表的一个特殊字段,经常与主键约束一起使用. 在 CREATE TAB ...
- mysql外键名_MySQL外键(foreign key)使用及说明详解
外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...
最新文章
- Android 动态生成 EditTest
- 算法提高课-动态规划-树形DP-AcWing 1072. 树的最长路径:dfs写法
- 第16讲:ODBCJDBC简介
- 软件工程综合实践专题第三次个人博客作业
- 《海龟交易法则》经典梳理
- leetcode解题记录(二)
- linux 下的前端编程工具,Prepros Linux版(前端开发工具)
- apache 网址重定向
- Python打字练习程序
- 做正确的事(效果)比正确的做事(效率)更重要
- KendoGrid的使用
- kafka学习七:kafka之集群篇
- AI算法之Encoder-Decoder 和 Seq2Seq
- 热电偶 matlab,基于MATLAB的陶瓷窑炉温度与热电偶热电势关系的数学模型研究
- linux运维(九)
- 创建数据表与修改数据表
- Quantopian自学笔记02
- Appium WebView 技术原理
- mysql 索引类型 mul_mysql的四种索引类型
- linux+gedit+编辑文件,GEDIT + GMATE = 实用的编辑器