2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

複合キーと複数カラムのユニークキー指定の違い

Posted at

レコードを一意制約したいときに、主キーを複数指定する複合キーを使う必要がある、と上司から教えてもらったのだが、ユニークキーの複数カラム指定との違いが分からなかったので、調べてみた。

複合キーとは

複数のカラムをプライマリーキーに指定し、その複数のカラムでレコードを一意に指定できるキー。

商品番号、商品、色をプライマリーキーに指定した場合

商品番号(PK) 商品(PK) 色(PK)  在庫数 店舗
001 椅子 3 池袋
032 4 茅ヶ崎
101 本棚 8 品川
332:point_left_tone1: クッション :point_left_tone1: :point_left: 20 新宿
332:point_left_tone1: クッション :point_left_tone1: :point_left: 48 初台

商品番号332、クッションが同じでも、色が異なればデータの格納ができる。

##ユニークキーとは
同じカラム内に同じデータを格納することができないキー。

商品番号、商品、色をユニークキーに指定した場合

商品番号(UQ) 商品(UQ) 色(UQ)  在庫数 店舗
001 椅子 3 池袋
032 4 茅ヶ崎
101 本棚 8 品川
332:point_left: クッション:point_left: 12 五反田
332:point_left: クッション:point_left: 20 新宿

商品番号332、クッションの色が各カラムで既に存在するデータであれば、データの格納はできない。

##まとめ
複合キーの場合
PK指定のカラムの値が全て同じである場合、DBに格納できない。

複数カラムのユニークキー指定の場合
各カラム内で格納できない値が決まるため、複数のカラムのうちいくつかは同じデータの重複を許してレコードを一意に指定することができない。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?