Postgresql:json数组对象中的Append元素
我在表列中存储了以下jsonb数据,如下所示:Postgresql:json数组对象中的Append元素,json,postgresql,Json,Postgresql,我在表列中存储了以下jsonb数据,如下所示: '{"info":[ { "database": "Oracle", "company" : "Oracle" }, { "database":"Sql Server", "company" :"
'{"info":[
{
"database": "Oracle",
"company" : "Oracle"
},
{
"database":"Sql Server",
"company" :"Microsoft"
},
{
"database":"DB2",
"company" :"IBM"
}
]}'
我需要向json数组中存在的所有对象添加元素“许可证”:“专有”,如下所示:
'{"info":[
{
"database": "Oracle",
"company" : "Oracle",
"License" : "Proprietary"
},
{
"database":"Sql Server",
"company" :"Microsoft",
"License" : "Proprietary"
},
{
"database":"DB2",
"company" :"IBM",
"License" : "Proprietary"
}
]}'
我在这里添加了sql FIDLE链接:
提前感谢。您需要单独调用每个数组元素上的
set_jsonb
,使用获取值并使用以下方法将其聚合回json数组:
()另请参见,和
UPDATE test
SET data = jsonb_set(data, '{info}', (
SELECT jsonb_agg(el || '{"License" : "Proprietary"}')
FROM jsonb_array_elements(data -> 'info') el
));