PostgreSQL 9.5 から ON CONFLICT が導入されて Upsert (Insert or Update) ができるようになったものの、複数行まとめてやることはできなかった。 [2020.08 追記] コメントで指摘いただいたので追記。 ON CONFLICT ... DO UPDATE 内で使える EXCLUDED 句を使えば VALUES に複数行を指定して Bulk Upsert ができるらしい。(未検証) [追記おわり] ON CONFLICT を使わなくても、CTE を使うことで以下のように Bulk Upsert することができるっぽい。 WITH -- write the new values n(ip,visits,clicks) AS ( VALUES ('192.168.1.1',2,12), ('192.168.1.2',6,18), ('192.1