しばらくPostgreSQL 9.5調査をサボっていたのですが、久々に再開。 9.5の目玉機能になりそうなものとして、所謂UPSERTがある。 UPSERTの概要 UPSERTとは、非常に簡単に言えば、 「INSERTできるならINSERTし、INSERTできない場合は代わりにUPDATEを行う」 という機能。 本家のアナウンスーンのページでは INSERT ON CONFLICT UPDATE, otherwise known as "UPSERT" と書かれている。 この記述からもわかるように、UPSERT専用の構文が追加されたというわけではなく、INSERT文へ構文を追加してUPSERT相当を実現するというもの。 PostgreSQL文書のINSERTのページを見てのとおり、9.5からは ON CONFLICT [ conflict_target ] conflict_action
![PostgreSQL 9.5 UPSERTを試してみた - 日々の記録 別館](https://cdn-ak-scissors.b.st-hatena.com/image/square/c27869c44bc122e5edd8eaef71aa334028c95a1b/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fn%2Fnuko_yokohama%2F20150801%2F20150801200236.png)