TECHNOLOGY

Tips !(使用上のテクニック)

対象バージョン : 8.0.2, 8.0.3, 9.0.x
対象OS : 全て

ST0602053

既存データの有無を確認せずINSERTする

Tips !

既存データの有無をチェックし、INSERTしようとしているデータが存在している場合はUPDATEを行なうといった処理を行なう場合は、INSERT 文の ON EXISTING 句を使用して、データの有無を確認せずINSERTを行なうことが可能です。

ON EXISTING 句を指定したINSERT文は、テーブル内の既存のローを (プライマリ・キー・ルックアップに基づいて) 新しい値で更新することができます。この句は、プライマリ・キーが設定されたテーブルでのみ使用できます。プライマリ・キーがないテーブル、またはプロキシ・テーブルでこの句を使用すると、構文エラーになります。

ON EXISTING 句を指定すると、サーバは各入力ローに対してプライマリ・キー・ルックアップを実行します。対応するローが存在しない場合は、新しいローが挿入されます。すでにテーブルに存在するローに対しては、次の操作を選択できます。

ERROR:
重複するキー値に対してエラーを生成する。ON EXISTING 句を指定しない場合は、これがデフォルトの動作です。
SKIP:
入力ローを無視して、エラーを生成しない。
UPDATE:
既存のローを入力ロー内の値で更新する。

UPDATEを選択いたしますと、対応するローが存在する場合は、INSERTしたデータで既存のローを更新しますので、既存のデータを事前に確認する必要がなくなります。