データベースを理解する 007「一意性制約」

社員テーブルに、社員が登録されています。

社員番号 | 社員名
========+===========
1759   | A山 B郎
2827   | C田 D彦
3339   | E口 F子
4210   | G本 H行

新しく社員が入ってきたので登録しようと思います。こんなデータです。
・社員番号=4210
・社員名=N藤 Z子

登録してみました。

社員番号 | 社員名
========+===========
1759   | A山 B郎
2827   | C田 D彦
3339   | E口 F子
4210   | G本 H行
4210   | N藤 Z子

あれ、社員番号4210が重複してますね…

* * * * * *

社員番号は、その会社内においては社員一人ずつ一意の値を割り当てるのが一般的かと思います。となると、重複したものを登録できるのはまずいです。

テーブルはあくまでデータを入れる箱として扱うのであれば、登録前に登録する人が重複していないかのチェックをする、というのも必要なことではありますが、テーブル側でも「このテーブルのこの列は重複する値を許容しないよ!」の制約をつけることができます。

この制約を「一意性制約 (いちいせいせいやく、Unique Constraint)」と言います。

この社員テーブルの社員番号には一意性制約を付与します。
付与した場合、登録済社員番号のデータを登録しようとすると、制約違反でエラーになりますので、登録する人が「あれ、採番間違えた?」と気づくことができます。

この記事が気に入ったらサポートをしてみませんか?