什么是外键?

  • 外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约或唯一约束
  • 外键约束用于建立和加强两个表数据之间的连接
  • 作用:将两表之间的数据建立关系,保证数据的完整性和统一性

添加外键约束

(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~外键约束相关推荐

  1. MySQL外键约束On Delete、On Update各取值的含义

    主键.外键和索引的区别?   主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...

  2. mysql 外键约束_MySQL之外键约束(FOREIGN KEY)

    定义: MySQL外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列.一个表可以有一个或多个外键. 外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每 ...

  3. mysql外键约束怎么写_mysql外键约束怎么写

    mysql外键约束的写法:[[CONSTRAINT ] FOREIGN KEY 字段名 REFERENCES 主键列1].外键约束是表的一个特殊字段,经常与主键约束一起使用. 在 CREATE TAB ...

  4. MySQL——外键约束

    设置外键约束(FOREIGN KEY, FK ) MySQL外键约束是表的一个特殊字段,经常与外键约束一起使用.对于两个具有关联关系的表而言,相关字段中主键所在表称为主表(父表),外键所在表称为从表( ...

  5. mysql外键约束详解_详解MySQL 外键约束

    详解MySQL 外键约束,西欧,西西里,玛雅,兵种,诺曼 详解MySQL 外键约束 易采站长站,站长之家为您整理了详解MySQL 外键约束的相关内容. 官方文档: https://dev.mysql. ...

  6. mysql 外键约束

    mysql外键约束 概念:外键约束是让两个表数据之间建立连接保证数据的一致性和完整性 语法: – 添加约束 创建表时添加约束 create Table 表名{列名 数据类型,--[constraint ...

  7. MySQL外键约束(FOREIGN KEY)

    MySQL外键约束(FOREIGN KEY) MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列.一个表可以有一个或多个外键. 外键对应的是参照完整性, ...

  8. mysql外键约束视频教学_外键约束案例_MySQL数据库 快速入门 基础+实战 视频教程_MySQL视频-51CTO学院...

    MySQL是开源免费和功能多面的小型数据库,MySQL也是目前流行通用的关系型数据库,已经被 Oracle 收购了.随着版本更新升级,加入一些高级功能,MySQL6.x 版本也开始收费.不过本教程将使 ...

  9. mysql外键约束脚本_如何在MySQL中设置外键约束

    (1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库 ...

  10. mysql外键约束语句级连_mysql之外键约束(级联操作等) 父表子表

    不理解的地方标注问号. 网上不同的博客讲的,之间似乎有些矛盾,求推荐好书. 写得不好请指出错误. 父表和子表 当两个表建立一对多关系的时候,"一"的那一端是父表,"多&q ...

最新文章

  1. 谈谈 Java 中自定义注解及使用场景
  2. UA池和IP代理池使用
  3. Android之封装倒计时页面
  4. Mathematica图片局部变色
  5. 前端学习(1854)vue之电商管理系统电商系统之安装mysql
  6. C++没有调用析构函数
  7. 拼多多被指洗钱 官方回应:将起诉“差评”并索赔1000万元
  8. 创意c语言程序设计,重庆理工大学-c语言程序设计基础教程_习题答案(纪纲_金艳).doc...
  9. java火币网做接口_火币网API文档——Websocket 请求与订阅示例
  10. 理科本科,无考试,读诗《宣州谢脁楼饯别校书叔云》李白
  11. 阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践
  12. Base64,DES,RSA,SHA1,MD5 笔记
  13. VMware密钥激活
  14. mybatis采坑之 PageHelper.startPage出现两个limit情况
  15. python字符串字母怎么取出_Python需要从字符串中提取第一个和最后一个字母
  16. 小米如何安装magisk和太极阳(纯小白篇)
  17. Java 使用 POI 3.17根据Word 模板替换、操作书签
  18. 艾米丽的蜜月旅行Android,美味餐厅:艾米丽的蜜月旅行完整版
  19. 【STM32F429开发板用户手册】第46章 STM32F429的DMA2D应用之刷色块,位图和Alpha混合
  20. java空气质量指数AQI算法

热门文章

  1. 使用coding和hexo快速搭建博客
  2. centos无法ping通百度域名和 mirrors.aliyuncs.com;
  3. MySQL高可用之InnoDB Cluster
  4. 经典通用的Pbootcms花卉网站模板源码,自适应手机端,带后台管理
  5. otsu阈值分割算法原理_大津法---OTSU算法
  6. 如何在PS里把逆光曝光不足的人像进行修复并且美化
  7. 油漆桶beta1.0
  8. 端到端的基于深度学习的网络入侵检测方法
  9. 【数据库】SqlServer2000导入(升级)到SqlServer2008R2
  10. Python(解非线性方程和线性方程)求水力学法向深度-浪涌高度速度及互连反应器中的浓度和流体分布