数据库🔥8.0

PostgreSQL 18 支持在 RETURNING 子句中引用 OLD 和 NEW 行

原标题: PostgreSQL 18 支持在 RETURNING 子句中引用 OLD 和 NEW 行

微博-数据库关键词·2026/10/10 11:47:02🔗 原文

📋总体概括

PostgreSQL 18 在 RETURNING 子句中新增对 OLD 和 NEW 行引用的支持,允许 DML 语句在返回结果时同时访问修改前后的行数据。此前开发者只能通过 RETURNING 拿到新值或旧值,难以在同一条语句中对比变更前后差异,往往需要额外的查询或触发器配合。这一语法增强借鉴了 MERGE 等标准的行引用设计,简化了审计日志、变更对比等场景的实现,是 PostgreSQL 持续补齐易用性短板的又一体现。

⚡关键信息

  • ▸PostgreSQL 18 为 RETURNING 子句新增 OLD 和 NEW 行引用能力
  • ▸开发者可在同一 DML 语句的返回结果中同时获取修改前后的行数据
  • ▸此前需借助额外查询或触发器才能对比变更前后差异
  • ▸该特性适用于审计日志、数据变更对比等典型场景
  • ▸设计上与 MERGE 语句的行引用机制保持一致

🔥犀利点评

别小看这个小改动——RETURNING 只能拿到一边的值,逼得多少人在触发器和二次查询里绕路。OLD/NEW 引用到位后,变更捕获这种活儿终于能一条 SQL 干净收尾。PostgreSQL 近年版本的策略很清晰:不搞大词,专挑 MySQL 和商业库早就有的实用语法逐个补齐,补一个就实打实少一个迁移阻力。

本文由本站自动聚合,以下为原始来源:前往 微博-数据库关键词 阅读全文 →