Postgresql-13

如何更新 jsonb 欄位的多個屬性?

  • July 26, 2021

如何一次更新年齡和狀態,

我有一個 jsonb 欄位類型,我需要更新 2 個屬性(年齡和狀態)。我只能更新年齡和狀態,使用下面的命令,如何一次更新“年齡”和“狀態”?

**Update test Set attributes = jsonb_set(attributes, array['age'],to_jsonb(32))**

jsonb_set函式接受一個jsonb值作為其第一個參數並返回另一個jsonb值,這是應用修改的結果。您可以將結果jsonb值傳遞給另一個jsonb_set呼叫,您將在其中應用第二個更改。這將導致嵌套jsonb_set呼叫,正如評論中建議的a_horse_with_no_name。該聲明看起來像這樣

UPDATE
 test
SET
 attributes = jsonb_set(
                jsonb_set(attributes, array['age'], to_jsonb(32))
              , array['status']
              , to_jsonb('some new status'::text)
              )
;

引用自:https://dba.stackexchange.com/questions/296061