2017-07-11 10 views
1

現在のPKが重複する値を持つ必要があるので、重複を許容するために複合キーに変更することを決定しています。 PKに別の列を追加します。私はそれを変更する前に考慮すべき事項についていくつかのヒントをお伝えしたいと思いますか?プライマリキーを変更する前に考慮すべきこと

答えて

2

私の頭に浮かぶ最初のことは、変更する予定の主キーを参照する外部キーがあるかどうかです。外部キーも変更する必要がある場合は、子に列を追加することができますこれを達成するためのテーブル。

第2に、OracleのすべてのPK-sは一意のインデックスでサポートされています。変更したPKを変更すると、そのテーブルの選択クエリがそのインデックスに当たると特定の行にすばやくアクセスできます以前の索引を使用していた索引は、新しく作成された索引を使用しない可能性があり、そのために遅くなる可能性があります。

新しい複合PKを作成する追加の列を追加すると、その追加の列に暗黙的にNOT NULL制約が設定されます。つまり、新しいPKを作成する前にnull値は存在しません。それの後に。

関連する問題