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

PostgreSQL中如何为JSONB数组内的每个对象添加新键值对

给PostgreSQL JSONB数组中每个对象添加新键值对的更新语句

要给master_data_approval_table表中所有记录的approval_value字段(JSONB类型数组)里的每个对象添加"comment": null键值对,可以使用以下UPDATE语句:

UPDATE master_data_approval_table
SET approval_value = (
  SELECT jsonb_agg(elem || '{"comment": null}'::jsonb)
  FROM jsonb_array_elements(approval_value) AS elem
);

语句说明:

  • jsonb_array_elements(approval_value):将JSONB数组拆分为单个对象元素,每行对应一个数组元素
  • elem || '{"comment": null}'::jsonb:利用PostgreSQL的JSONB合并操作符||,给每个对象元素添加新的键值对
  • jsonb_agg(...):将处理后的单个对象重新聚合为JSONB数组
  • 最终将聚合后的数组赋值回原字段,完成所有记录的更新

如果需要避免对空数组或null值的字段做无效更新,可以添加WHERE条件:

UPDATE master_data_approval_table
SET approval_value = (
  SELECT jsonb_agg(elem || '{"comment": null}'::jsonb)
  FROM jsonb_array_elements(approval_value) AS elem
)
WHERE approval_value IS NOT NULL AND approval_value != '[]'::jsonb;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:02:11