コンテンツへスキップ
uencoder

Primary Key

主キー(プライマリキー)とは、テーブル内の各行を一意に識別する列または列の組み合わせである。NULL不可かつ一意であり、行の識別子となる。

目的

すべての行に一意な識別子を与え、正確な検索とリレーションの参照を支える。

メカニズム

主キー値は一意かつNULL不可である(NOT NULL + UNIQUE)。単一列にも複合列にもでき、通常は自動採番の整数やUUIDが使われる。クラスタードインデックスは主キー上に構築されることが多く、行データは主キー順に格納される。キーの選択は挿入性能とストレージに影響する。

ユースケース

  • 行のユニーク識別
  • 外部キーが参照する先
  • クラスタードインデックス
  • ORMエンティティの同一性

例

  • 入力
    id BIGSERIAL PRIMARY KEY
    Output
    Auto-incrementing primary key

    PostgreSQL

よくあるエラー

Using a business field as the primary key (it may change)
Use a meaningless auto-increment ID or UUID

関連用語

References