MySQL为表添加外键约束
为表添加外键约束的语法
Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);
为表student添加外键约束
执行成功后,使用DESC来查看学生表和班级表
可以看出,grade表中的id是主键,student表中的gid是外键
使用show create table,查看表的详细结构
可以看出,gid为student表的外键,并且,gid依赖于grade表中的id主键。
为表添加外键约束时,需要注意
1、建立外键的表,必须为InnoDB型,不能使临时表,因为,在MySQL中只有InnoDB类型的表,才支持外键。
2、定义外键名时,不能加引号,比如constraint’FK_ID’或constraint”FK_ID”都是错误的
添加外键约束的参数说明
建立外键,是为了保证数据的完整和统一性,如果,主表中的数据被删除或修改,那么,从表中对应的数据也应该被删除,否则,数据库会存在很多无意义的垃圾数据。
MySQL可以在建立外键时,添加ON DELETE或ON UPDATE子句,来告诉数据库,怎样避免垃圾数据的产生
语法格式
alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);
参数说明
CASCADE——删除包含与已删除键值,有参照关系的所有记录
SET NULL——修改包含与已删除键值,有参照关系的所有记录,使用NULL值替换,不能用于已标记为NOT NULL的字段
NO ACTION——不进行任何操作
RESTRICT——拒绝主表删除或修改外键关联词,在不定义ON DELETE和ON UPDATE子句时,这是默认设置,也是最安全的的设置
MySQL为表添加外键约束相关推荐
- mysql给表加外键约束_MySQL为表添加外键约束
为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...
- mysql给一个表添加外键约束_Mysql添加外键约束
简单说一下使用外键的好处 1.完整性约束 比如: 用户表中有字段 用户编号(id) , 名称(username) 设备表中有字段 设备编号(id) , 设备名称(devicename) 设备属于的用户 ...
- mysql 删除表时外键约束_MySQL删除表的时候忽略外键约束的简单实现
删除表不是特别常用,特别是对于存在外键关联的表,删除更得小心.但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的表来重新创建也是常有的事情:另外在测试的时候,也有需要重新创建 ...
- 在mysql中如何添加外键约束_如何在MySQL中设置外键约束
(1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库 ...
- mysql数据库如何添加外键约束_MySQL数据库之外键约束的简单理解
定义 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的 ...
- oracle添加外键约束的方法
给表添加外键约束分两种情况,一种是刚建表的时候直接添加外键约束,另一种则是表已经创建好了再添加外键约束. 建表时添加外键约束: create table test_a(id number not nu ...
- 使用MySQL数据库创建表时添加外键约束
/题目:创建表Book表,字段如下: bid整型,要求主键 bname学符型,要求设置唯一键,并非空 price浮点型,要求有默认值10 btypeId 类型编号,要求引用bookType表的id字段 ...
- MySQL:错误代码1215 无法添加外键约束的解决思路
环境说明: ※MySQL ver:5.7 当你需要添加外键约束的时候,却发现mysql报了个1215错误,一脸懵逼的找到这个博客,那你的问题可能就会得到解决. 解决思路 1.检查两个字段的数据类型是否 ...
- MySQL可以生成E-R图嘛_使用Navicat for mysql生成E-R图,添加外键约束
1. E-R图生成 用 mysql的Navicat Premium图形界面工具 . 可以生成E-R图. 把你的数据库选中后右键 , 选择"逆向表到模型" 就可以了 2.添加外键约束 ...
最新文章
- 号称用GPT-3开发的游戏,却活生生玩出了人性黑暗面
- Python之自动单元测试之一(unittest使用实例)
- hash 值重复_MySQL调优实战:MySQL B+Tree索引和Hash索引的区别?
- 云原生的本质_云原生是什么 云原生技术有何作用
- PyCharm将制表符转换为空格并显示的配置方法
- web 服务器被配置为不列出此目录的内容。_三级网络技术考前选择题12—WWW服务器...
- Linux/Documentations: Kernel Livepatching
- 一步一步教您用websocket+nodeJS搭建简易聊天室(4)
- Java中子程序输出到输出文件中_Fortran 90中子例程和函数中的参数/变量的INTENT的含义...
- 通过触发绑定切换下拉框的数据
- 第二阶段冲刺10天 第二天
- 企业组织形态及财务报表
- radio默认选中第一个_Mybatis学习之路【1】-- 第一个程序
- Scratch二次开发——如何创建单独的Scratch作品展示页?
- Angular安装命令
- 拍摄制作360度全景图有哪些技巧?
- 鸽哒im即时通讯源码
- Python3教程@hikali
- 没有权限访问网络资源/Windows7虚拟机共享文件
- RxJava简单使用