SQL删除多表关联数据的三种方法

SQL删除多表关联数据的三种方法1.级联删除 createtablea(id varchar(20)primarykey,passwordvarchar(20)notnull)createtableb(idintidentity(1,1) primarykey,namevarchar(50)notnull,userIdvarchar(20),fo

大家好,又见面了,我是你们的朋友全栈君。1.级联删除
 create table a
(
id  varchar(20) primary key,
password varchar(20) not null
)

create table b
(
id int identity(1,1)  primary key,
name varchar(50) not null,
userId varchar(20),
foreign key (userId) references a(id) on delete cascade
)
表B创建了外码userId 对应A的主码ID,声明了级联删除
测试数据
insert a values (’11’,’aaa’)
insert a values(’23’,’aaa’)
insert b values(‘da’,’11’)
insert b values(‘das’,’11’)
insert b values(‘ww’,’23’)
删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了

delete a where id=’11’


2.采用存储过程
 
A表:
AID   Aname                                 主健:AID
B表:
BID   BelongAID Bname               主健:BID,外健:BelongAID 
C表:
CID BelongBID Cname                  主健:CID,外健:BelongBID
D表:
DID BelongCID Dname                  主健:DID,外健:BelongCID
其中:
A表和B表通过A.AID和B.BelongAID  创建了外健关系
B表和C表通过B.BID和C.BelongBID  创建了外健关系
C表和D表通过C.CID和D.BelongCID  创建了外健关系

SQL删除多表关联数据的三种方法

3.采用触发器

SQL删除多表关联数据的三种方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160706.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月17日 下午3:16
下一篇 2022年7月17日 下午3:16


相关推荐

  • qt tabwidget切换_qtabwidget tab样式

    qt tabwidget切换_qtabwidget tab样式感谢https://blog.csdn.net/skyztttt/article/details/52448992QTabWidget默认的Tab方向是水平的,从属性设置更改tabPosition=west后的效果如下图最终效果图#ifndefMH1_H#defineMH1_H#include<QMainWindow>#include<QPainter&gt…

    2025年12月4日
    6
  • Mybatis——foreach用法

    Mybatis——foreach用法在做 mybatis 的 mapper xml 文件的时候 时常遇到一些需要批量操作的情况 这个时候 mybatis 的 foreach 标签就派上用场了 foreach 元素的属性主要有 item index collection open separator close item 集合中元素迭代时的别名 该参数为必选 index 在 list 和数组中 index 是元素的序号 在 map 中 index 是元素的 key 该参数可选 open foreach 代码的开始符号 一般是 和 clos

    2026年1月25日
    4
  • 数据库之关系模型介绍「建议收藏」

    数据库之关系模型介绍「建议收藏」本篇文章是数据库系列的第一篇文章,本系列文章是笔者在学习《数据库系统概念》这本书总结的内容,使用的数据库是mysql。关系数据库的结构关系数据库由表(table)的集合构成,每个表由唯一的名字。表中的一行代表了一组值之间的联系,而表就是这种联系的一个集合,表这个概念和数学上的关系概念是密切相关的,这也是关系数据模型名称的由来。在关系模型的术语中,关系(relation)用来指代表,元组…

    2022年7月16日
    17
  • 腾讯元宝AI在线登录入口 腾讯元宝网页版高效入口

    腾讯元宝AI在线登录入口 腾讯元宝网页版高效入口

    2026年3月14日
    2
  • Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!

    Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!前言:jacoco是JavaCodeCoverage的缩写,是Java代码覆盖率统计的主流工具之一。关于jacoco的原理介绍的文章在网上有很多,感兴趣的同学可以去找别的博客看看,我这里不做赘述。它的作用是在安卓项目的代码覆盖率统计使用了jacoco的离线插桩方式,在测试前先对文件进行插桩,然后生成插过桩的class或jar包,测试(单元测试、UI测试或者手工测试等)插过桩的class和jar包后,会生成动态覆盖信息到文件,最后统一对覆盖信息进行处理,并生成报告。在我接到这个需求,需要统计开发人.

    2022年7月20日
    16
  • STM32与S3C2440的区别

    STM32与S3C2440的区别在学习嵌入式的路上,我们可能会接触到这两个比较典型的MCU。其中最大的区别就是S3C2440能跑linux操作系统,常常作为学习嵌入式linux的硬件平台。可能大家会问既然S3C2440能跑linux操作系统,似乎比stm32厉害多了,为什么不直接去学习S3C2440呢?下面我就大概解释一下大家遇到的困惑:1.先来说说stm32stm32是ST公司推出的基于Cortex-M3内核的

    2022年4月30日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号