小编Art*_*emP的帖子

如何更新复杂的 jsonb 列?

我有一个具有以下定义的表:

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()函数与#-运算符结合使用(首先从数组中删除值,然后使用更新的状态附加到它)。
我该怎么做?

postgresql update json postgresql-9.5

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

json ×1

postgresql ×1

postgresql-9.5 ×1

update ×1