Postgres 18:RETURNING子句中的OLD和NEW行

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

Postgres 18发布,新增RETURNING子句支持同时访问旧值(OLD)和新值(NEW),简化了INSERT、UPDATE、DELETE和MERGE命令中新旧值的获取,提高了代码的可读性和实用性。

🎯

关键要点

  • Postgres 18发布,新增RETURNING子句支持同时访问旧值(OLD)和新值(NEW)。
  • 此功能简化了INSERT、UPDATE、DELETE和MERGE命令中新旧值的获取。
  • 通过UPDATE操作可以同时获取所有新旧值,提升代码可读性。
  • 在upsert操作中,可以更容易地区分新插入行和更新的现有行。
  • Postgres 18中,检查OLD是否为空可以判断行是新插入还是更新,简化了实现。

延伸问答

Postgres 18中RETURNING子句的新功能是什么?

Postgres 18新增RETURNING子句支持同时访问旧值(OLD)和新值(NEW)。

如何在UPDATE操作中获取旧值和新值?

可以使用UPDATE语句,如:UPDATE fruit SET quantity = 300 WHERE item = 'Apples' RETURNING OLD.*, NEW.*;

Postgres 18如何简化upsert操作的实现?

通过检查OLD是否为空,可以更容易地区分新插入行和更新的现有行,简化了实现。

在Postgres 18中,如何判断一行是新插入还是更新?

可以通过检查OLD是否为空来判断,如果OLD为空则表示是新插入的行。

RETURNING子句的OLD和NEW值有什么实际应用场景?

OLD和NEW值可以在多种场景中使用,例如在upsert操作中区分新插入和更新的行。

Postgres 18的RETURNING子句对代码可读性有什么影响?

此功能提高了代码的可读性,使得获取新旧值的过程更加简洁明了。

➡️

继续阅读