一个外键对应多条数据进行删除

本文介绍了在数据库操作中如何根据外键ID删除多条关联数据。通常,删除操作涉及主键ID,但当一个外键对应多条记录时,直接使用Single查询会导致异常。为了解决这个问题,文章展示了如何通过接收主表ID,查询并遍历另一张表中所有关联的记录,逐条执行删除操作,从而避免错误并实现批量删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们做项目中,增删查改是我们必须要掌握的。我们一般删除的话就通过获取某一个主键来进行进行对单条数据删除,直接通过Single来进行删除。当然也有批量删除,我们是通过获取选中行来获取主键ID来进行对主键ID来拼接,然后传到控制器,通过遍历来进行对每一条数据进行删除。

然而,我接下来的问题就是我需要的就是我要根据外键ID来进行删除多条数据,如果一个外键ID对应的数据是多条的时候,我们可以用single查询,但是会触发异常。

下面我们来看一下页面上的效果:
在这里插入图片描述
现在我们就来实现一下,下面看上图,这是主表,然后我要根据这个ID来进行对另一张表的数据进行删除,这样我们要根据一个外键ID对应的多条数据的删除,就是当我们选择商机信息的时候,我们要根据它ID来进行删除另一张表。我们把我们想要删除的商机ID来进行传到控制器,因为我们删除的时候要删除主表,还有另一张表的数据,而另一张表的数据就是要根据我们要删除的商机ID来进行多条删除。
在这里插入图片描述
这个是我们要删除的主表,然而在这时候我们申请一个int类型来进行接受主表的ID,然后我们来通过这个ID来进行把另一张表里的所有关于这个ID的所有数据给查询出来,然
后通过for循环来进行每一条数据进行删除,代码如下:
在这里插入图片描述
但是这样就会报错,效果图如下:
在这里插入图片描述
这时我有想到了利用遍历循环来根据商机ID来进行对多条数据删除,下面我们来看一下怎么操作,其实道理也是一样的。
首先我们需要申请一个int类型来接受商机ID,然后在查询出所有关于它ID的数据,在利用foreach遍历循环把关于它ID的每一条数据进行删除,下面请看代码:
在这里插入图片描述
这样我们便完成删除主表商机表,然后我们的外键ID对应的多条数据也就进行删除成功了。
效果图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值