ユニークインデックス【unique index】

概要

ユニークインデックスとは、リレーショナルデータベースのテーブルにおいて、特定の列または複数列の組み合わせの値が重複しないよう強制する索引(インデックス)。検索を高速化する通常のインデックスの機能に加え、値の一意性を保証する制約としての機能を併せ持つ。
ユニークインデックスのイメージ画像

ユニークインデックスが設定された列では、既に存在する値と同じデータを追加したり、更新によって重複する値に変更したりすると、データベースはエラーを返して処理を拒否する。これにより、アプリケーション側の確認を経ずとも、データベース自体が不正なデータの混入を防ぐことができる。

会員登録時のメールアドレスやユーザーIDなど、重複しては困る項目に設定して運用する。対象は単一の列に限らず、複数の列の組み合わせに設定することも可能で、その場合は個々の列ではなく組み合わせ全体としての一意性が判定される。

SQLでは、「CREATE UNIQUE INDEX」という命令文を用いてユニークインデックスを作成する。列名を指定して実行すると、その列に重複を許さないインデックスが作成され、対象の列に既に重複したデータが存在する場合は、作成の時点でエラーとなる。データベース管理システム(DBMS)は検索の際、テーブル全体を先頭から順に探すのではなく索引情報を参照するため、対象の値が一つしか存在しないことが保証されているユニークインデックスは、通常のインデックスより効率的な読み出しが可能になる。

ユニークインデックスは主キーと共通する性質を持つが、同じものではない。主キーは行を識別するための制約であり、一つのテーブルに一つしか設定できないのに対し、ユニークインデックスは一つのテーブルに複数設定でき、列ごとに異なる一意性を定めることもできる。また、値が空であることを示すNULLについては同じ値とみなされない扱いとなっており、ユニークインデックスを設定した列であってもNULLを含む行は複数登録できる場合がある。ただし、この扱いはデータベース製品によって異なるため、利用の際には対象製品の仕様を確認する必要がある。

(2026.9.17更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。