PostgreSQL conflict upsert のトリック

SELECT して存在しない時だけ、INSERT を行うという操作は、
2回のSQL実行文を流す=コードすることになる。

PostgreSQL の CONFLICT の DO UPDATE の条件 WHERE句を
結果 False にすれば、すでにレコードが存在すれば、UPDATEが走らないことになる。

よくクエリで書く、WHERE 1=1 AND ~ のように書く理屈を利用して、
WHERE 1=0 と書いてしまうのである。
DO NOTHING で、いいじゃないかというのはあるのだけど
例)

INSERT INTO sample (id, `point`, price, insert_date) VALUES (3, 40, 400, NOW())
ON CONFLICT (id)
DO UPDATE SET insert_date = NOW() WHERE 1=0

DO UPDATE SET で記述する列へのセットは、なんでもいいから書かなくてはならないが、
既存レコードが存在する場合、WHERE 1=0 で、絶対に更新が実行されずに、
SELECT して存在しない時だけ、INSERT を行うという操作と
同じことが1回のSQL文実行で済むのである。