一尘不染

级联删除查询

sql

我有三张桌子。产品,公司,员工

产品表的ProductId是公司的前向键,公司表的CompanyId是员工的前向键

因此,从Product表中删除ProductId时,其他表中的所有相关记录都应删除。但是我不能碰模式(不能使用alter
table)。在这种情况下,我应该如何编写查询。


阅读 151

收藏
2021-05-23

共1个答案

一尘不染

如果您不能添加传播删除内容的约束,则必须自己编写所有必要的删除内容:

delete employee where companyid in (select companyid from company c where productid = xxx);
delete company where productid=xxx;
delete product where productid=xxx;
2021-05-23