UPSERTはUPDATEとINSERTの操作を合成したもので、テーブル内の単一の行に適用され、目的の行が存在しないためUPDATEに失敗した場合、INSERTが自動的に実行されます。
UPSERTのような機能はTeradata TPumpやTeradata MultiLoadなどのユーティリティで以前はサポートされていましたが、実装は2つの処理を一度に行なっていました(まずUPDATEを行ない、これに失敗した場合にはINSERTを実行)。UPSERTのようなクエリーのパフォーマンスを向上させるため、Atomic UPSERT機能がサーバーで実装されました。
データベースのUPSERT SQLをサポートするため、ODBC Driver for Teradataが拡張され、Teradata Tools and Utilitiesの新機能のサポートが追加されました。UPSERTでは、すべてのクライアント アプリケーションでこのUPSERT機能を単一クエリー(ワンパス ストラテジー)として使用できるため、TPumpやMultiLoadのバッチ ロジックと比較するとより高いパフォーマンスが得られます。
ODBC Driver for Teradataは、データベースとの接続を確立する際に、データベースがUPSERT機能をサポートしているかどうかを判断します。データベースがUPSERT機能をサポートしていない場合、アプリケーションが送信したUPSERT文は、次のような一般エラーをアプリケーションに返します。
("UPDATE..ELSE..INSERT (UPSERT) is not supported by Database").