私は外部キーと相互にリンクされた数十のテーブルを持つデータベースを持っています。通常の状況下では、これらの制約に対してデフォルトのON DELETE RESTRICT
の動作が必要です。しかし、データベースのスナップショットをコンサルタントと共有しようとする際に、機密データを削除する必要がありました。私はDELETE FROM Table CASCADE
コマンドの記憶が純粋な幻覚ではなかったことを願っています。 、あまりにもすべての外部キー制約をON DELETE CASCADE
条項を追加することから復元、私の削除を実行し、再び投棄、ON DELETE CASCADE
を除去し、最終的に復元することにより、ダンプを処理するスクリプトを書いて、データベースをダンプして私は何をやって終了PostgreSQLのカスケード削除
再び。これは、SQLでこれを行うために必要だった削除クエリを書くよりも簡単でした。データベースのスライス全体を削除するのは通常の操作ではないため、スキーマはそれにはあまり適していません。
誰かがこのような次回のためのより良い解決策を持っていますか?
トランケートはテーブルを残します。ドロップするとテーブル自体が削除されます。 – Hgehlhausen