外键的设置

news/2025/2/12 4:00:11/

关键词:外键 | 索引 | InNoDB和MyISAM | 引用 | Mysql

设置外键的目的:保证数据的一致性!

一、外键的使用条件:

① 两个表必须是InnoDB表,MyISAM表暂时不支持外键

	#查看表类型SHOW TABLE STATUS#查询结果的Engine字段下,一般默认InnoDB类型

② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;

	#创建索引CREATE INDEX 字段1 ON test(字段1) #对test2创建test的索引,在test2下执行,test2为从,test为主

这一步也是博主自己刚开始研究是碰到的最大的坑,

外键引用一直选不了对应字段,可能是你没有设置索引

③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;

二、设置外键
1、SQL代码设置

ALTER TABLE test2 
ADD xxx    #约束名  自己起
FOREIGN KEY test(字段2) #外键
REFERENCES test2(字段2) #约束表字段
ON DELETE CASCADE  #父表删除子表更新方式
ON UPDATE CASCADE; #父表更新子表更新方式

2、可视化界面设置

选中表—》关/系/外键 | F10 ——》外部键
在这里插入图片描述
约束名自动生成不用管,重点是后面的更新和删除关键字
在这里插入图片描述

三、相关关键字含义

外键约束(表2)对父表(表1)的含义:
在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句。

关键字含义
CASCADE删除包含与已删除键值有参照关系的所有记录
SET NULL修改包含与已删除键值有参照关系的所有记录,使用NULL值替换(只能用于已标记为NOT NULL的字段)
RESTRICT拒绝删除要求,直到使用删除键值的辅助表被手工删除,并且没有参照时(这是默认设置,也是最安全的设置)
NO ACTION啥也不做

四、外键约束使用最多的两种情况:

场景关键字选择
①父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败;ON UPDATE CASCADE ON DELETE RESTRICT;
②父表更新时子表也更新,父表删除时子表匹配的项也删除。ON UPDATE CASCADE ON DELETE CASCADE;

更多知识链接:
1、外键详解知识点:
https://www.cnblogs.com/microtiger/p/7814177.html

2、两表关联更新操作:
https://blog.csdn.net/qq_35866846/article/details/102798941


http://www.ppmy.cn/news/862621.html

相关文章

一、外键设置:外键约束(Oracle)

1.在创建表时候设置外键约束(列级)

CP AUTOSAR中的EThTrcv

环境 EthTrcv驱动实际上是要实现EthIf指出的接口,包括如下API函数,描述在一个结构体里面 /** \brief type used in EthIf_EthTrcvDrvApi */ typedef struct sEthIf_EthTrcvDrvApiType { EthIf_EthTrcvCheckWakeupFctPtrType CheckWakeupOfEthTrcvDrvApi; /**< Et…

联想笔记本重装win11系统后找不到无线网卡

踩坑&#xff1a;联想笔记本重装系统后找不到无线网卡 今天&#xff0c;给小新 Air-14 2021(AMD平台&#xff1a;ALC版)重装win11系统。重装之后才发现连不上wifi&#xff0c;右下角没有wifi模块。 进设备管理器找不到无线网卡的驱动。 最后的解决方法是&#xff0c;在另一台连…

联想笔记本更新驱动

1、进入驱动下载页面&#xff1a;ThinkPad服务网站首页_ThinkPad服务网站-联想服务 (lenovo.com.cn) 2、输入自己的机型&#xff0c;或者选择自己的机型 如果输入显示错误&#xff0c;直接“选择产品下载驱动” 3、找到自己电脑型号 4、选择查看更多&#xff0c;找到和自己笔记…

【UE4 塔防游戏系列】02-基础设置

步骤 1. 新建一个蓝图&#xff0c;父类为游戏模式基础 命名为“TaFangGameMode” 2. 新建一个玩家控制器 命名为“TaFangGamePlayerController” 3. 在世界场景设置中&#xff0c;选择游戏覆盖模式为“TaFangGameMode” 默认Pawn类设为None&#xff0c;玩家控制器类选择“TaFa…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 13 日论文合集)

文章目录 一、分割|语义相关(7篇)1.1 Correlation-Aware Mutual Learning for Semi-supervised Medical Image Segmentation1.2 RFENet: Towards Reciprocal Feature Evolution for Glass Segmentation1.3 Sem-CS: Semantic CLIPStyler for Text-Based Image Style Transfer1.4…

高中生物复习要点

2020高中生物复习要点 必修1[1-1] 细胞的分子组成1. 水和无机盐的作用2. 糖类的种类和作用3.脂质的种类和作用4.核酸的结构和功能5.蛋白质的结构和功能 [1-2]细胞的结构1.细胞学说2.细胞膜的结构和功能3.几种细胞器的结构和功能4.细胞核的结构和功能5.原核细胞和真核细胞6.使用…

2021年焊工(高级)新版试题及焊工(高级)证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通&#xff1a;焊工&#xff08;高级&#xff09;新版试题是安全生产模拟考试一点通总题库中生成的一套焊工&#xff08;高级&#xff09;证考试&#xff0c;安全生产模拟考试一点通上焊工&#…