MySQL~外键约束
什么是外键?
- 外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约或唯一约束
- 外键约束用于建立和加强两个表数据之间的连接
- 作用:将两表之间的数据建立关系,保证数据的完整性和统一性
添加外键约束
(1)建立外键的表必须是InnoDB型,不能是临时表
(2)定义外键名时,不能加引号
【方式一】创建表时添加外键约束
①constraint 外键名 foreign key (外键字段名) references 主表名(主键字段名);
②foreign key (外键字段名) references 主表名(主键字段名);
create table grade(
id int(4) not null primary key,
name varchar(36)
);
create table student(
sid int(4) not null primary key,
sname varchar(36),
gid int(4) not null,
foreign key (gid) references grade(id)
);
【方式二】为已存在的表添加外键约束
alter table 表名 add constraint 外键名 foreign key (外键字段名) references 主表名(主键字段名);
create table grade(
id int(4) not null primary key,
name varchar(36)
);
create table student(
sid int(4) not null primary key,
sname varchar(36),
gid int(4) not null
);
alter table student add constraint fk_gid foreign key (gid) references grade(id);
【多学一招】级联更新、删除
mysql可以在建立外键时添加on delete 或on update子句来告诉数据库,怎样避免垃圾数据的产生。具体语法格式如下:
alter table 表名 add constraint 外键名 foreign key (外键字段名) references 主表名(主键字段名);
[on delete { cascade | set null | no action | restrict } ]
[on update { cascade | set null | no action | restrict } ]
添加外键约束级联操作参数说明 |
|
参数名称 |
功能描述 |
cascade |
删除包含与已删除键值有参照关系的所有记录 |
set null |
修改包含与已删除键值有参照关系的所有记录,使用null值替换(不能用于标记为not null的字段) |
no action |
不进行任何操作 |
restrict |
拒绝主表删除或修改外键关联列(再不定义on delete和on update子句时,这是默认设置,也是最安全的设置) |
删除外键约束
删除外键约束的语法格式如下:
alter table 表名 drop foreign key 外键名;
将表student表中的外键约束删除,语句如下:
alter table student drop foreign key fk_gid;
MySQL~外键约束相关推荐
- MySQL外键约束On Delete、On Update各取值的含义
主键.外键和索引的区别? 主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...
- mysql 外键约束_MySQL之外键约束(FOREIGN KEY)
定义: MySQL外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列.一个表可以有一个或多个外键. 外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每 ...
- mysql外键约束怎么写_mysql外键约束怎么写
mysql外键约束的写法:[[CONSTRAINT ] FOREIGN KEY 字段名 REFERENCES 主键列1].外键约束是表的一个特殊字段,经常与主键约束一起使用. 在 CREATE TAB ...
- MySQL——外键约束
设置外键约束(FOREIGN KEY, FK ) MySQL外键约束是表的一个特殊字段,经常与外键约束一起使用.对于两个具有关联关系的表而言,相关字段中主键所在表称为主表(父表),外键所在表称为从表( ...
- mysql外键约束详解_详解MySQL 外键约束
详解MySQL 外键约束,西欧,西西里,玛雅,兵种,诺曼 详解MySQL 外键约束 易采站长站,站长之家为您整理了详解MySQL 外键约束的相关内容. 官方文档: https://dev.mysql. ...
- mysql 外键约束
mysql外键约束 概念:外键约束是让两个表数据之间建立连接保证数据的一致性和完整性 语法: – 添加约束 创建表时添加约束 create Table 表名{列名 数据类型,--[constraint ...
- MySQL外键约束(FOREIGN KEY)
MySQL外键约束(FOREIGN KEY) MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列.一个表可以有一个或多个外键. 外键对应的是参照完整性, ...
- mysql外键约束视频教学_外键约束案例_MySQL数据库 快速入门 基础+实战 视频教程_MySQL视频-51CTO学院...
MySQL是开源免费和功能多面的小型数据库,MySQL也是目前流行通用的关系型数据库,已经被 Oracle 收购了.随着版本更新升级,加入一些高级功能,MySQL6.x 版本也开始收费.不过本教程将使 ...
- mysql外键约束脚本_如何在MySQL中设置外键约束
(1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库 ...
- mysql外键约束语句级连_mysql之外键约束(级联操作等) 父表子表
不理解的地方标注问号. 网上不同的博客讲的,之间似乎有些矛盾,求推荐好书. 写得不好请指出错误. 父表和子表 当两个表建立一对多关系的时候,"一"的那一端是父表,"多&q ...
最新文章
- 谈谈 Java 中自定义注解及使用场景
- UA池和IP代理池使用
- Android之封装倒计时页面
- Mathematica图片局部变色
- 前端学习(1854)vue之电商管理系统电商系统之安装mysql
- C++没有调用析构函数
- 拼多多被指洗钱 官方回应:将起诉“差评”并索赔1000万元
- 创意c语言程序设计,重庆理工大学-c语言程序设计基础教程_习题答案(纪纲_金艳).doc...
- java火币网做接口_火币网API文档——Websocket 请求与订阅示例
- 理科本科,无考试,读诗《宣州谢脁楼饯别校书叔云》李白
- 阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践
- Base64,DES,RSA,SHA1,MD5 笔记
- VMware密钥激活
- mybatis采坑之 PageHelper.startPage出现两个limit情况
- python字符串字母怎么取出_Python需要从字符串中提取第一个和最后一个字母
- 小米如何安装magisk和太极阳(纯小白篇)
- Java 使用 POI 3.17根据Word 模板替换、操作书签
- 艾米丽的蜜月旅行Android,美味餐厅:艾米丽的蜜月旅行完整版
- 【STM32F429开发板用户手册】第46章 STM32F429的DMA2D应用之刷色块,位图和Alpha混合
- java空气质量指数AQI算法
热门文章
- 使用coding和hexo快速搭建博客
- centos无法ping通百度域名和 mirrors.aliyuncs.com;
- MySQL高可用之InnoDB Cluster
- 经典通用的Pbootcms花卉网站模板源码,自适应手机端,带后台管理
- otsu阈值分割算法原理_大津法---OTSU算法
- 如何在PS里把逆光曝光不足的人像进行修复并且美化
- 油漆桶beta1.0
- 端到端的基于深度学习的网络入侵检测方法
- 【数据库】SqlServer2000导入(升级)到SqlServer2008R2
- Python(解非线性方程和线性方程)求水力学法向深度-浪涌高度速度及互连反应器中的浓度和流体分布