You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL的jsonb对象顶层添加同级属性?

在PostgreSQL的JSONB顶层添加同级属性的最简方法

对于JSONB对象顶层添加新属性,最简洁高效的方式是使用||(JSONB合并操作符),尤其适合处理大对象场景,不需要复杂的路径指定。

示例实现

原JSONB对象:

{"example":123}

执行更新语句,添加property-to-add属性:

UPDATE mytable
SET jsoncolumn = jsoncolumn || '{"property-to-add":"value"}'::jsonb
WHERE id = 1;

修改后的JSONB对象:

{"example":123,"property-to-add":"value"}

原理说明

||操作符会直接合并两个JSONB对象:

  • 若新对象中的键在原对象不存在,则直接添加为顶层属性
  • 若存在重复键,新对象的键值会覆盖原对象的对应值(新增场景下无需担心覆盖问题)

对比其他方法(可选参考)

虽然也能用jsonb_set实现,但语法更繁琐:

UPDATE mytable
SET jsoncolumn = jsonb_set(jsoncolumn, '{}', jsoncolumn || '{"property-to-add":"value"}'::jsonb, true)
WHERE id = 1;

显然||操作符的写法更直观,执行效率也更高,尤其当JSONB对象较大时,避免了不必要的路径解析操作。

内容的提问来源于stack exchange,提问作者myol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:50:23