1. ホーム

[解決済み】CASCADE DELETEを一度だけ実行する

2022-04-04 13:48:12

質問

Postgresqlのデータベースで、いくつかのカスケード削除を行いたいと考えています。 しかし、テーブルには ON DELETE CASCADE ルールが設定されていません。 削除を実行し、Postgresqlに一度だけそれをカスケードするように指示する方法はありますか? 以下のようなものです。

DELETE FROM some_table CASCADE;

の答えは この古い質問 そのような解決策は存在しないように思われますが、念のためこの質問を明示的にしておこうと思いました。

どのように解決するのですか?

一度だけ行うには、カスケード接続したいテーブルのdeleteステートメントを書くだけです。

DELETE FROM some_child_table WHERE some_fk_field IN (SELECT some_id FROM some_Table);
DELETE FROM some_table;