SQL -PRIMARY KEYとUNIQUE制約の違いについて-
Primary Key(主キー)もUnique制約も「一意性」を設定して、データの整合性を高める点では一致しています。
「なにがちゃうねん」と思ったので調べてみました。
PRIMARY KEY
PRIMARY KEY(主キー)とは
「Table内で行データを識別するために1つだけ設定できる、重複した値を許さないフィールド」
のことです。
わかりやすいようでわかりにくい。
通常ユーザのデータ(名前や性別、年齢など)は行に格納されています。
それをかんたんに識別するために用いる「ID」などの通し番号がPRIMARY KEYに設定されることが多いです。
PRIMARY KEYはあくまでTable内で1つなので、Table内での一意性を高めています。
UNIQUE制約
UNIQUE制約は
「重複した値を許さないフィールド」
のことです。
PRIMARY KEYと明らかに違う点は、説明が短いことです。
つまり「Table内で1つだけ設定できる」という条件がありません。
「行データを識別する必要はないけど、重複はノーセンキュー」といった場合に役立ちます。
また、PRIMARY KEYとは違いNULLが許容されます。
NULLの扱い自体は他の値と同じでフィールド内に1度しか許されません。
まとめ
両方IDなどに用いるものの使用する目的によって異なる、ということがわかりました。
PRIMARY KEY:行データを特定するために一意性を持たせる
UNIQUE制約:重複してほしくないデータ(フィールド)に一意性を持たせる
しかし主キーって発音が可愛いですよね、「しゅきー」って。
今回参考にしたページ