はじめに UPSERTが採用されたという事で使用方法を調べてみました。 UPSERTとは 「このデータをINSERTしたいけど、同じデータが存在していて制約で弾かれるかもしれない。そうなったらUPDATEしたいなあ。」 と言った場合に使える機能です。 ただし、UPSERT句が作られた訳ではなく「一般的にUPSERTと言われている機能を搭載したよ」と言う事みたいですね。 この後は実際に制約を設定したテーブルにUPSERTを試してみてどうなるかを見ていきます。 検証環境 Mac OSX 10.9.5 PostgreSQL 9.5.1 構文 INSERT INTO テーブル名 VALUES ('値1', '値2', ...) ON CONFLICT ON CONSTRAINT 制約名 DO UPDATE SET カラム1='値', カラム2='値', ...; INSERTとUPDATEでON