10

状況の例があります。テーブルには、テーブルで外部キーとして参照されるparentという名前の列があります。idchild

子行を削除するとき、他の子によって参照されていない場合、親も削除する方法は?

4

2 に答える 2

2
delete from child
where parent_id = 1

子で削除した後、親でそれを行います:

delete from parent
where
    id = 1
    and not exists (
        select 1 from child where parent_id = 1
    )

条件はnot exists、子に存在しない場合にのみ削除されるようにします。両方の削除コマンドをトランザクションでラップできます。

begin;
first_delete;
second_delete;
commit;
于 2013-04-04T11:17:54.623 に答える