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

PostgreSQL中如何向JSON类型数组追加元素?

PostgreSQL JSON数组追加元素的解决方法

你的问题核心是:PostgreSQL的||数组连接运算符仅支持jsonb类型,而你的friends字段是json类型,因此直接使用会报错;json类型本身也没有内置的||运算符支持。

以下是两种可行的解决方法:

方法一:临时转换为jsonb类型操作

将原json字段转换为jsonb,使用||连接数组后再转回json:

UPDATE profile 
SET friends = (friends::jsonb || '["Alice"]'::jsonb)::json 
WHERE username = 'David';

如果是追加单个元素,用jsonb_build_array构造单个元素的数组更直观:

UPDATE profile 
SET friends = (friends::jsonb || jsonb_build_array('Alice'))::json 
WHERE username = 'David';

方法二:使用JSON专用函数json_array_append

PostgreSQL提供了直接操作json数组的json_array_append函数,无需转换类型:

UPDATE profile 
SET friends = json_array_append(friends, '"Alice"') 
WHERE username = 'David';

或者用to_json生成标准JSON值,避免手动加引号的麻烦:

UPDATE profile 
SET friends = json_array_append(friends, to_json('Alice'::text)) 
WHERE username = 'David';

额外建议

如果后续需要频繁操作JSON数组,建议直接将friends字段的类型修改为jsonb,这样可以直接使用||等便捷运算符,同时jsonb类型在查询和修改的性能上更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:05:26