簡體   English   中英

如何在Postgres中更新JSONB數組

[英]How to update JSONB array in postgres

我有一個具有以下定義的表:

CREATE TABLE USER_CONFIGURATIONS (
  ID         BIGSERIAL PRIMARY KEY,
  DATA       JSONB
);

我有一個看起來像這樣的數據字段:

[
    {
        "user_id": 1,       
        "user_name": "demo_user", 
        "is_manager": 1,        
        "options": [
            {
                "phone":{
                    "home":"XXXXXXX",
                    "work":"XXXXXXX"
                },
                "address":{
                    "home":"XXXXXXX",
                    "work":"XXXXXXX"
                }
            }
        ]
    },
    ...
]

問題:

  • 如何更新“ user_name”?
  • 如何更新“選項->電話->家庭”?

    更新USER_CONFIGURATIONS SET DATA = jsonb_set(...)WHERE ... user_id = 1;

postgres 9.6版本。 我嘗試了jsonb_set()但沒有發現

https://www.db-fiddle.com/f/4ZYZiuJr4QgfNkzyTCeT1X/1

只需運行兩次:

update USER_CONFIGURATIONS
set data =  
jsonb_set(
  jsonb_set(
    data,'{0,"user_name"}','"blah"'
  ), '{0,"options",0,"phone","home"}','999999'
)
where id =1
;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM