Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


5.3.5 ユニークインデクスを定義する列を決めるときの考慮点

ユニークインデクスとは,キー値(B-treeインデクスを定義した列の値)の重複を許さないB-treeインデクスのことです。キー値の重複を許さない制約を一意性制約といいます。

B-treeインデクスを定義する列に対して,重複したキー値がないことを保証したい場合に,ユニークインデクスを定義することを検討してください。

メモ

実表の定義時に主キー(一意性制約定義)を定義した場合も,ユニークインデクスが自動的に定義されます。主キーについては,「5.2.9 主キー(一意性制約定義)の指定(PRIMARY KEY)【シングルチャンク表】」を参照してください。

ただし,次に示す場合は重複したキー値があっても重複キー値にはなりません(一意性制約に違反しません)。

ユニークインデクスは,CREATE INDEX文のUNIQUEを指定することで定義できます。UNIQUEを指定した場合,キー値が重複するようなデータの更新および追加はできません。また,あるキー値を持つ行を追加しようとした際に,実行中の別のトランザクションがすでに同じキー値を持つ行を追加していた場合も追加できません。

重要

ユニークインデクスを定義していても,次の場合には一意性制約は保証されません(キー値の重複が発生するおそれがあります)。

  • adbimportコマンドでデータインポートした場合

  • adbidxrebuildコマンドでB-treeインデクスを再作成した場合