(2017/07/25追記) 1クエリで実現する方法を書きました。 【PostgreSQL】レコードが存在すればUPDATE、なければINSERTを1クエリで実現する いちいちSELECTしてきて、とってきた値を検証してSQL文を生成しなおして、 これじゃ面倒なので、SQL文だけでなんとかならないか調べることに。 参考 http://stackoverflow.com/questions/11135501/postgresql-update-if-row-with-some-unique-value-exists-else-insert 英語はあまり分からないですが、コードから読み解く。 UPDATE table SET field='C', field2='Z' WHERE id=3; INSERT INTO table (id, field, field2) SELECT 3, 'C'