【PostgreSQL】レコードが存在すればUPDATE、なければINSERTをSQL文で実現する

(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文、WHERE文の式に合致するレコードが存在すればUPDATE、なければ無視。
INSERT文、NOT EXISTSでUPDATE文のWHEREと同じ条件を設定。
存在すればINSERTはされない、存在しなければINSERTが実行される。

簡単だけど、忘れがちなのでメモ。


sponsored link

2 comments

  1. Great, thanks for sharing this article.

  2. […] 昔の記事の関連みたいなもの。 【PostgreSQL】レコードが存在すればUPDATE、なければINSERTをSQL文で実現する 最近っぽいやり方で1クエリで実現する。 […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です