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したデータで既存のローを更新しますので、既存のデータを事前に確認する必要がなくなります。