【MySQL】外键约束的删除和更新总结

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:“没有罗马,那就自己创造罗马~”

at intervals 不时,每隔...

文章目录

  • `外键约束`
    • `外键约束的删除/更新行为`
    • `演示2:`
    • `测试:`
  • `通过图形化界面创建`
  • `总结`

外键约束

外键约束的删除/更新行为

行为说明
NO ACTION当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与RESTRICT一致)
RESTRICT 当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与NOT ACTION一致)
CASCADE当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表总的记录。
SET NULL当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置该子表中该外键值为null(这就要求该外键允许取null)。
SET DEFAULT父表有变更时,子表将外键列设置为一个默认的值(innodb不支持)
alter table 表名 add constraint 外键名称 references 主表名(主表字段名) on update cascade on delete cascade
-- 添加外键约束并指定外键的删除和更新行为
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade ;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将父表dept中的研发部的id改为6,emp表中的id也会跟着改变

在这里插入图片描述

当我们删除父表中id为6,我们可以看到子表emp中存在外键关联的数据也会被删除。 说明:如果子表与父表存在外键关联,删除父表的数据也会影响子表。

在这里插入图片描述


演示2:

现在我们先删除刚刚创建的emp和dept这两张表,然后重新创建。然后通过命令行进行emp表的外键的添加。
-- 添加外键约束并指定外键的删除和更新行为alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update set null on delete set null ;

测试:

删除dept表中的第一行,然后刷新,我们可以看到emp表中的id为1的数据全部置为null了。

在这里插入图片描述
在这里插入图片描述


通过图形化界面创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选中预修改的表,然后点击modify table,再点击foreign keys ,双击命令,我们可以在这里修改更新和删除的规则,改完以后点击execute执行即可.

总结

在这里插入图片描述
](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/470111.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(二)【Jmeter】专栏实战项目靶场drupal部署

该专栏后续实战示例,都以该篇部署的项目展开操作。 前置条件 参考“(一)【Jmeter】JDK及Jmeter的安装部署及简单配置” 安装部署Jmeter,从文章最后下载“Postman、Rancher.ova、VirtualBox-7.0.12-159484-Win.exe、Xshell-7.0.01…

考研高数(导数的定义)

总结: 导数的本质就是极限。 函数在某点可导就必连续,连续就有极限且等于该点的函数值。 例题1:(归结原则的条件是函数可导) 例题2: 例题3:

python守护进程--supervisor 使用教程

supervisor 使用教程python守护进程1.安装 pip3 install supervisor -i https://pypi.tuna.tsinghua.edu.cn/simple 2.使用supervisor 启动 python main.py 文件 vim /etc/supervisor/conf.d/demo.conf添加以下内容:[program:demo] #项目名称为democommandp…

XML学习

XML学习 1 XML介绍2 XML语法3 XML特殊字符4 XML文档结构5 XML命名空间 1 XML介绍 XML是可扩展的标记性语言&#xff0c;常用来传输和存储数据。可见于Web中的web.xml和Maven中的pom.xml version是版本&#xff0c;encoding是编码 <?xml version"1.0" encodin…

[数学建模] 计算差分方程的收敛点

[数学建模] 计算差分方程的收敛点 差分方程&#xff1a;差分方程描述的是在离散时间下系统状态之间的关系。与微分方程不同&#xff0c;差分方程处理的是在不同时间点上系统状态的变化。通常用来模拟动态系统&#xff0c;如在离散时间点上更新状态并预测未来状态。 收敛点&…

【Windows】常用快捷键

文章目录 文本编辑相关快捷键窗口管理和操作系统快捷键浏览器快捷键其他常用快捷键系统无响应快捷键 快捷键&#xff1a;shortcut key、keyboard shortcuts。 文本编辑相关快捷键 这部分是非常常用的内容&#xff0c;在很多编辑器中都适用的&#xff0c;比如csdn的markdown和t…

(14)Hive调优——合并小文件

目录 一、小文件产生的原因 二、小文件的危害 三、小文件的解决方案 3.1 小文件的预防 3.1.1 减少Map数量 3.1.2 减少Reduce的数量 3.2 已存在的小文件合并 3.2.1 方式一&#xff1a;insert overwrite (推荐) 3.2.2 方式二&#xff1a;concatenate 3.2.3 方式三&#xff…

消息队列RabbitMQ-使用过程中面临的问题与解决思路

消息队列在使用过程中会出现很多问题 首先就是消息的可靠性&#xff0c;也就是消息从发送到消费者接收&#xff0c;消息在这中间过程中可能会丢失 生产者到交换机的过程、交换机到队列的过程、消息队列中、消费者接收消息的过程中&#xff0c;这些过程中消息都可能会丢失。 …

comfyui换脸学习笔记

目录 Portrait Maker ComfyUI_Lam 人脸融合方案&#xff1a; 圣诞写真工作流 IPadapter faceID/faceID plus/faceID plusV2/Reactor换脸效果对比来 Portrait Maker 核心用的是 EasyPhoto ComfyUI_Lam 人脸融合方案&#xff1a; demo效果还可以&#xff0c;真实效果不是很稳…

RabbitMQ配置消息转换器

1. 默认转换器 Test public void testSendMap() throws InterruptedException {// 准备消息Map<String, Object> msg new HashMap<>();msg.put("name", "harry");msg.put("age", 21);// 发送消息rabbitTemplate.convertAndSend(&q…

【C++】const、static关键字和构造函数初始化

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 1. const修饰成员函数 1.1 语法格式 1.2 权限放大缩小 1.3 思考 1.4 解答 2. 再谈构造函数 2.1 构造函数体赋值 2.2 初始…

解决:RuntimeError: shape ‘[1, 3, 32, 32]‘ is invalid for input of size 4096

报错&#xff1a; 原因&#xff1a; 因为我下载的图片是4通道的&#xff1a;通过下面打印出来的结果可知是RGBA四通道的。 解决方法&#xff1a; 但是网络的输入需要RGB三通道&#xff0c;因此需要使用下列方法进行转换&#xff1a; image_path "../imgs/dog.png"…