sql - SQL - 从多个表中删除(使用 FK)
问题描述
我正在尝试从三个表中删除数据。我有一个我要设置的 AccountId,然后我想删除关联的数据。
Appointment.Id 和 AppointmentExtension.Id 中的 Id 是相同的值(GUID)
Table:Appointment
---------------------
- Id
- Name
- AccountId
Table: AppointmentExtension
----------------------
- Id
- Settings
Table:SettingItems
---------------------
- Id
- AppointmentExtensionId(FK)
所以本质上我想设置参数@accountId. = "ABCD"
并删除所有记录。
请注意,我有一个 FK SettingItems.AppointmentExtensionId = AppointmentExtension.Id
,假设由于 FK,我需要删除表中的所有项目,SettingItems
然后再删除其他两个项目?
如何做到这一点的一个例子会很棒?
解决方案
您需要从孩子开始,顺序如下:
delete from SettingItems
where AppointmentExtensionId in ( select Id from AppointmentExtension)
delete from AppointmentExtension where id in ( select id from Appointment where @AccountId = accountId
delete from Appointment where @AccountId = accountId
推荐阅读
- pdf - 使用 Google Apps 脚本从多页附件 PDF 中提取文本
- excel - Excel 匹配函数在数据集末尾运行
- python - 在 read_file 函数中使用 yield 和 return
- if-statement - 在 Kotlin 中满足三角形的条件
- physics - 计算/近似刚体上的速度和旋转冲量,只给定一个位置的力和刚体的质心?
- python - 如何使用 Selenium 从 unsplash 获取所有下载链接?
- python - 为什么我没有得到 div 中的文本?
- c# - 获取已注册的 azure 应用以访问密钥保管库
- javascript - 如何更新本地存储中数组内的id
- reactjs - 如何在 React 上使用带有 useState 的单选按钮?