我有postgresql與總是包含數組的jsonb字段。 我需要將新值附加到該數組或通過索引更新已經存在的值。postgresql,jsonb字段,數組追加通過jsonb_set和jsonb_array_length
看起來像jsonb_set
功能符合我的要求。爲了追加新元素,我只需要最大數組索引和更新元素。 但是我做這件事很麻煩。讓我們一步一步來。 我們有jsonb字段team_members的表格廣告系列。
select id, jsonb_set(team_members, '{0}', '{"name" : "123"}') from campaigns;
id | jsonb_set
-----+-------------------
102 | [{"name": "123"}]
好的很好,如果設置路徑「{0}」靜態一切正常。 讓我們做得到數組長度動態
SQL(這是我們可以進行追加指數)
select '{' || jsonb_array_length(team_members) || '}'::text from campaigns;
?column?
----------
{0}
讓所有一起
select jsonb_set(team_members, '{' || jsonb_array_length(team_members) || '}', '{"name" : "123"}') from campaigns;
錯誤:功能jsonb_set(jsonb,文字,未知)不存在 LINE 1:select jsonb_set(team_members,'{'|| jsonb_array_length (茶... ^提示:沒有函數匹配給定的名稱和參數類型。你可能會
需要添加明確的類型轉換。
我的問題是 - 我該如何擺脫這個錯誤?我做錯了什麼?
在此先感謝。 ?
如果要追加,''||是給你 –
對不起,我更合適的人選米不知道我跟着你,你能告訴我例如嗎? – user1341596
起初我並不瞭解你與索引的一部分。現在我想我明白了。並在回答 –