2

私がやりたいのは、親テーブルから行を削除して、子テーブルにデータを保持するときです。

つまり、テーブル部門がある場合、これは2つの列を持つ親テーブル(depNoおよびdepName)と、3つの列を持つ子テーブルemNoemNameおよび)depNo (FK)です。

親テーブルの行を削除できるようにしたいのですが、子テーブルの行を保持します(私の場合、ライセンスに接続されているため、ユーザーがすでに削除されている場合でも、行を追跡することをお勧めします)。

ON DELETE NO ACTION親テーブルの行を削除しようとするとエラーが発生するため、機能しないと思います。

CASCADEこの場合は良くありSET NULLません。

SET Default-デフォルト値を作成できないため、機能しません-異なる可能性があります(100%確実になります)。

それを作る方法はありますか?

4

1 に答える 1

2

外部キー列に元の値が含まれている状態で子データを保持する唯一の方法は、外部キー制約を削除することであり、一貫性のないデータを追加する可能性があります。

外部キー制約なしで新しいテーブルを作成し、削除する前に子行をそのテーブルにコピーすることをお勧めします。

于 2012-11-07T12:50:22.240 に答える