20

親テーブルがあり、それを参照する多数の子テーブルがあります。これらの子テーブルには、それらを参照する他の子テーブルがあります。等々。

メインの親テーブルから行を削除して、それをずっと下にカスケードする必要があります。

「ON CASCADE DELETE」にするためにあちこちに制約をドロップ/再作成することはオプションではありません

それらすべてを調べて子行を手動で削除するのは悪夢です。

他のオプションはありますか?

4

2 に答える 2

28

DELETEステートメントには、カスケードするためのパラメーターがありません。

したがって、ユーザーを作成するかON CASCADE DELETE、一連の個別の削除を正しい順序で実行することができます。

テーブル構造を調査し、それに基づいて一連の削除を生成する「スマート削除」プロシージャを作成できますが、個別の削除を作成するよりも、作業が多く、悪夢のようになります。そして、これが機能するためには、これらの制約が必要になります、実際には必ずしも望ましいとは限りません。

于 2012-12-14T15:26:39.867 に答える