Open1

複合ユニークキーの一部のカラムを後からnullableにした時の対応について

まさぴょんまさぴょん

複合ユニークキーの一部のカラムを後からnullableにする時の対応

Q:複合ユニークキーだったものの片方を後から nullableにする場合、複合ユニークキーを貼り直す必要があるか?

A:複合ユニークキーを貼り直した方がいい!

  • 複合ユニークキーの一部であるカラムを nullable に変更した場合、ユニーク制約の挙動が変わる可能性があります
  • データベースによっては、NULL 値を持つカラムがユニーク制約内にある場合、NULL 値が同一とみなされず、重複したレコードが許容されることがあります。
  • ユニーク制約を一度削除し、カラムの定義を変更した後、再度ユニーク制約を適用する
  • これにより、制約が新しいカラム定義と正しく連携して、データの一貫性を保つことができます。

参考・引用

https://kanonji.hatenadiary.com/entry/20110714/1310611877

https://zenn.dev/yumainaura/articles/qiita-2023-11-24t08_21_54-09_00