UPSERT
概要
UPSERTとは、データベースなどに対する操作の種類の一つで、指定のデータが有れば更新し、無ければ新規作成(挿入)すること。「INSERT」(インサート)と「UPDATE」(アップデート)を組み合わせた造語。リレーショナルデータベース(RDB)を操作するための問い合わせ言語であるSQLでは、データベースにレコードを追加するにはINSERT文を、既存のレコードのデータを更新(上書き)するにはUPDATE文を用いる。
データベースの用途によっては、「データが存在するなら更新し、無ければ新規作成する」という操作を行いたい場合がある。UPSERTはINSERTの機能とUPDATEの機能を組み合わせ、一度の指示でこのような操作を行うことができる。
SQLの拡張としてUPSERT文という命令文を用意している処理系はあまりないが、INSERT文の拡張やMERGE文などの形でPostgreSQLやMySQL、SQLiteなどがUPSERTに相当する機能を提供している。RDB以外のデータベースでは、米オラクル(Oracle)社の「SQL for Oracle NoSQL Database」というSQL風の言語にUPSERT文が用意されている。
(2023.11.25更新)