↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

PostgreSQL 19 支持 ON CONFLICT DO SELECT RSS

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

发布于 2026-09-10T10:59:37.196577Z · Laurenz Albe · CYBERTEC 博客
PG19 SQL upsert

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

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

原始来源 ↗

来源记录
  • center.info_item · bfc4fada9474a6f4 · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · bfc4fada9474a6f4 · 2026-10-03T04:08:55.967155Z