PostgreSQL 19 支持 ON CONFLICT DO SELECT
PostgreSQL 19 给 ON CONFLICT 加了 DO SELECT 变体。此前冲突时只能什么都不做或改为更新,想拿到已存在那行的主键或生成列值,还得再发一条 SELECT。新语法让带 RETURNING 的 INSERT 在冲突时直接返回现有行,并支持行锁定和 WHERE 条件。Laurenz Albe 指出,表上有生成列或触发器时收益最明显,它补齐了 DO NOTHING 与 DO UPDATE 之间的空档。


