Postgresql:json数组对象中的Append元素

Postgresql:json数组对象中的Append元素,json,postgresql,Json,Postgresql,我在表列中存储了以下jsonb数据,如下所示: '{"info":[ { "database": "Oracle", "company" : "Oracle" }, { "database":"Sql Server", "company" :"

我在表列中存储了以下jsonb数据,如下所示:

'{"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
));