Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
状況の例があります。テーブルには、テーブルで外部キーとして参照されるparentという名前の列があります。idchild
parent
id
child
子行を削除するとき、他の子によって参照されていない場合、親も削除する方法は?
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、子に存在しない場合にのみ削除されるようにします。両方の削除コマンドをトランザクションでラップできます。
not exists
begin; first_delete; second_delete; commit;