我找到了一些信息,但是其中一些信息没有清楚解释,或者示例令人费解。 此示例已在PostgreSQL 12上成功执行。要求是使用PostgreSQL部分更改JSON结构。 JSONB用作数据类型。
数据结构具有以下外观
{
"id":1,
"person":{
"name":"fred"
}
}
要更改数据记录。必须更改属性$.person.name
,并添加$.person.gender
。
select '{"id":1, "person" : { "name" : "fred" } }'::jsonb || '{"person": { "name" : "lisa", "gender" : "F" }}'::jsonb
结果包含相应的修改。
{
"id":1,
"person":{
"name":"lisa",
"gender":"F"
}
}
JSONB列data
的更新语句如下
update t_person set data = data || '{"person": { "name" : "lisa", "gender" : "F" }}'::jsonb
答案 0 :(得分:0)
您可以使用person
重设整个jsonb_set()
属性:
select jsonb_set(
'{"id":1, "person" : { "name" : "fred" } }'::jsonb,
'{person}',
'{ "name":"lisa", "gender":"F" }'::jsonb
)
| jsonb_set | | :--------------------------------------------------- | | {"id": 1, "person": {"name": "lisa", "gender": "F"}} |