Verticaではテーブルに主キーを設定できますが、主キーを設定していても、該当列に重複データを
ロードできます。主キーが設定された列の重複データをチェックする方法をご紹介します。

 ※主キーは、重複データのチェック以外にも、プリジョイン・プロジェクションを使用するために
  必要な制約です。

構文

重複データのチェックには、ANALYZE_CONSTRAINTS関数を使用します。

※列名は省略可能です。

実行例

col1列が主キーのテーブルに、重複データが格納されている場合の実行例です。


重複データを検出した場合の対処

重複データを検出した場合は、以下の対処が考えられます。

1) 重複データ行を全て削除し、最新のデータをロードする
2) 重複データ行のどちらか一方を削除する

2番目の対処については、主キー項目以外に削除対象行を絞り込み可能な項目が必要になります。
以下の例では、col3にデータロード時の日時を投入して削除対象行を絞り込めるようにし、
重複データ行の古い方を削除しています(最新データを正と仮定)。


検証バージョンについて

この記事の内容はVertica 7.1で確認しています。