使用SQL中的外键从父表中删除行

时间:2018-05-02 16:12:25

标签: sql sql-delete referential-integrity

我有一个包含外键的父表和一个包含主键的子表。我想只删除父表中那些在Child表中没有对应行的行。我想在SQL存储过程中实现它。

2 个答案:

答案 0 :(得分:0)

通常,您只需使用not exists

delete parent
    where not exists (select 1
                      from child
                      where child.parentid = parent.id
                     );

答案 1 :(得分:0)

您还可以使用joins(即left join

delete p from parent p
left join child c on c.parentid  = p.parentid 
where c.parentid  is null;