
112
他の行と同じ値を
入れられないようにする
4-10
UNIQUE制約を使うと、カラムに他のレコードと重複した値を格納で
きないようにすることができます。もしUNIQUE制約が設定されたカラム
に対して重複した値を格納しようとした場合は、エラーとなって登録でき
ません(図4-19)。
例えば商品コードやユーザーIDのような、
といった用途が考えられるでしょう。もし別
の商品に同じ商品コードがついていると、識別できずに困ってしまいま
す。あらかじめUNIQUE制約を設定しておくことによってそのような重複
を防ぐことが可能になります。
ちなみにNULLは値がないということを表していますが(4-8 参照)、
こちらはUNIQUE制約が適用されません。例外として複数のレコードに格
納することができます。UNIQUE制約は値が存在するレコードにのみ適用
されるということになります。
MySQLの場合は、図4-20 のようにテーブル作成時に「UNIQUE」をカ
ラム名の後ろにつけることで、重複した値を格納できないように設定する
ことができます。今回の例では「id」カラムと「name」カラムを設けた
「users」テーブルを作成し、「id」カラムにUNIQUE制約を設定していま
す。
このテーブルに「id」カラムを「1」、「name」カラムを「山田」にセッ
トしてレコードを追加(3-6参照)してみます。続けて今度は「id」カラ
ムを「1」、「name ...