我有一个具有以下定义的表:
create table json_test (
filter_data jsonb);
Run Code Online (Sandbox Code Playgroud)
我插入这样的值:
'{"task_packets": [
{
"state": "PROCEEDING",
"task_id": 1001
},
{
"state": "REVERTING",
"task_id": 1002
}
]}'
Run Code Online (Sandbox Code Playgroud)
现在我想将此jsonb
列更新为:
'{"task_packets": [
{
"state": "DONE",
"task_id": 1001
},
{
"state": "REVERTING",
"task_id": 1002
}
]}'
Run Code Online (Sandbox Code Playgroud)
即我想使用指定的task_id
内部 task_packets 数组更改值的状态。我建议以某种方式将jsonb_set()
函数与#-
运算符结合使用(首先从数组中删除值,然后使用更新的状态附加到它)。
我该怎么做?