MySQL的删除级联

当我们从父表中删除行时,MySQL中的ON DELETE CASCADE子句用于自动从子表中删除匹配的记录。这是与外键有关的一种引用动作。

假设我们创建了两个带有外键关系的FOREIGN KEY的表,使这两个表成为父级和子级。接下来,我们为一个FOREIGN KEY定义一个ON DELETE CASCADE子句,必须将另一个FOREIGN KEY设置为成功进行级联操作。如果仅为一个FOREIGN KEY子句定义ON DELETE CASCADE,则级联操作将引发错误。

MySQL ON DELETE CASCADE示例

让我们了解如何在MySQL表中使用ON DELETE CASCADE子句。首先,我们将创建两个名为Employee和Payment的表。这两个表都通过带有删除级联操作的外键关联。在这里,Employee是父表,Payment是子表。以下脚本创建两个表及其记录。

表:员工

以下语句创建一个表Employee:

接下来,执行插入查询以填充记录。

执行SELECT查询以将数据验证到表中,如下所示:

表:付款

下面的语句创建一个付款表:

接下来,执行插入语句以将记录填充到表中。

执行SELECT查询以将数据验证到表中,如下所示:

让我们从父表Employee中删除数据。为此,请执行以下语句:

上面的语句将删除emp_id = 102的员工记录,并将数据引用到子表中。我们可以使用SELECT语句验证数据,该语句将提供以下输出:

在上面的输出中,我们可以看到所有引用emp_id = 102的行均已从两个表中自动删除。

如何通过ON DELETE CASCADE操作查找受影响的表?

有时,在从表中删除记录之前,我们想通过ON DELETE CASCADE引用操作来了解受影响的表。我们可以通过在information_schema数据库中的referential_constraints中进行查询来找到此信息,如下所示:

下面的语句使用employeedb数据库中的ON DELETE CASCADE规则生成有关与Employee表关联的表的结果:

执行完上述命令后,我们将获得以下输出:

MySQL的更新级联

当我们更新父表中的行时,MySQL中的ON UPDATE CASCADE子句用于自动更新子表中的匹配记录。以下示例对其进行了更清晰的说明。

首先,我们需要使用ALTER TABLE语句在“付款”表中添加ON UPDATE CASCADE子句,如下所示:

它将给出以下输出:

在下面的脚本中,我们将更新“父表”中员工的ID,它也会自动在子表中反映此更改:

验证Employee和Payment表的内容,我们将看到emp_id列值将成功更新。

0

相关文章:Python MySQL-更新表 Python MySQL-更新表 UPDATE对 […]...

MySQL版本 MySQL版本 版本控制是在开发和发布时将唯一的版本名称或编号分类到唯一的一组软件程序的过程。表示软件或程序的 […]...

MySQL显示/列表数据库 MySQL显示/列出数据库 当我们使用MySQL服务器时,通常的任务是显示或列出数据库,显示特定数据库中的表以 […]...

MySQL在重复密钥更新上插入 MySQL在重复密钥更新上插入 Insert on Duplicate Key Update语句是MySQL中 […]...

MySQL ORDER BY子句 MySQL ORDER BY子句 MYSQL ORDER BY子句用于按升序或降序对记录进行排序。 句法:...

MySQL BETWEEN条件 MySQL BETWEEN条件 MYSQL BETWEEN条件指定如何从特定范围内的表达式检索值。它与SELE […]...

MySQL主键 MySQL主键 MySQL主键是字段的单个或组合,用于唯一地标识表中的每个记录。如果该列包含主键约束,则它不能 […]...

MySQL导出和导入数据库 MySQL导出和导入数据库 我们如何在MySQL中导出和导入数据库? MySQL中的数据库导出和导入是将数据从 […]...

mysql删除时级联语句,MySQL删除级联相关推荐

  1. 微信小程序-删除时提示是否确定删除

    微信小程序-删除时提示是否确定删除 效果 代码 wx.showModal({content: '确定要删除吗?',success: function (sm) {if (sm.confirm) {// ...

  2. mysql根据id删除数据sql语句_删除数据sql-sql数据库删除数据-sql中实现数据删除的语句是...

    怎样用sql语言删除一行数据 在SQL数据库中删除记录一般使用Delete语句,下面就将为您介绍SQL中用于删除记录的DELETE语句的语法 DELETE FROM 表名称 WHERE 列名称 = 值 ...

  3. mysql跳过sock配置项_烦死。装个MYSQl启动时老是说mysql.sock不存在

    在ssh上输入 mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server thr ...

  4. mysql版本 时间_【MySQL】MySQL版本时间线和MySQL各版本的区别

    MySQL各版本的区别 https://yq.aliyun.com/articles/607474 http://blog.sina.com.cn/s/blog_62b37bfe0101he5t.ht ...

  5. mysql删除学生记录_mysql删除重复记录语句,删除除了 id 号不同,其他都相同的学生冗余信息...

    /** 在Mysql下执行: delete from my.stu where id not in( select min(id) id from my.stu group by code ) ; 用 ...

  6. mysql的while循环语句,MySQL循环语句之while循环测试

    MySQL有循环语句操作,while 循环.loop循环和repeat循环,目前我只测试了 while 循环,下面与大家分享下 mysql 操作同样有循环语句操作,网上说有3中标准的循环方式: whi ...

  7. mysql切换用户sql语句,MySQL用户管理及SQL语句详解

    [(none)]>select user,host frommysql.user; #查询用户和主机+---------------+-----------+ | user | host | + ...

  8. VS2010连接MySql数据库时无法选择mysql database数据源

    点击连接下载文件:https://dev.mysql.com/downloads/file/?id=451295 解决方案:点击上面的连接,下载mysql-for-visualstudio-1.1.4 ...

  9. MySQL中购买的语句,mysql操作语句 - 买灰机自己开的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.对数据库的CRUD 1.创建数据库:create database  数据库名[character set 字符集] 2.查询所有数据库:show databases 3.查询数据库定义结构:sh ...

最新文章

  1. java中 运算符
  2. 知识图谱学习笔记-PageRank
  3. 在将计算机技术应用于会计工作的初期,所开发的会计核算软件主要用于,电算化考前试七.doc...
  4. 从Http它被连接到WebSocket
  5. ACR EE 全链路加速升级
  6. 05.内存管理.md
  7. IIS安装与MVC程序部署
  8. Mybatis源码分析--Mapper接口的代理生成原理
  9. chrome切换前端模式_H5暗黑模式在京东收银台中的实践
  10. plsql developer 安装在win7 64位电脑路径问题
  11. 计算机操作系统|汤小丹|第四版|习题答案(一)
  12. MATLAB热障涂层成像,微波检测热障涂层孔隙率的可行性研究
  13. 足球机器人第一次作业:编写程序解析球员所看到和听到的信息。
  14. 记一次3dmax操作入门(二)模型导入,选择和显示
  15. CNN各模块介绍(一)
  16. convert ps pcl emf wmf to pdf files using ghostscript
  17. 数据分析|SQL面试题集锦
  18. 《伪样本新场景样本挖掘和适应》
  19. 掌握模拟电路设计需要阅读的几本参考书!
  20. 什么是令牌桶(Token Bucket)?

热门文章

  1. iPhone升级iOS 15后无法正常开机,怎么解决?
  2. 硬盘拆解全过程详细图解(ZT)
  3. python学习路线-思维导图
  4. 卓训教育:善用“番茄钟法”,让孩子学会管理时间
  5. 东南大学计算机软件,东南大学实现 Adobe 2018 版软件正版化
  6. 【典型习题整理】数据结构与算法作业
  7. mysql数据库条件语句怎么写_Mysql数据库的条件查询语句
  8. latex设置双栏间距与双栏分割线(亲测有效)
  9. 舞蹈室如何打破拉新难的困境?
  10. 微信小程序startLocationUpdateBackground()简单实现骑手配送位置