簡體   English   中英

Postgres sql jsonb_set() 不能正常工作

[英]Postgres sql jsonb_set() is not working fine

我正在嘗試更新 jsonb 值。 請告訴我我做錯了什么。 這里我有一個表,它有一個帶有 jsonb 數據類型的配置文件列。

UPDATE <TABLE NAME> SET
"profile" = jsonb_set('{"lastName": "dada"}'::jsonb, '{lastName}'::text[] , concat('"', (profile->'lastName'), '"')::jsonb, false)
where email = 'abc@example.com'

錯誤:函數 jsonb_set(jsonb, text[], jsonb, boolean) 不存在第 2 行:"profile" = jsonb_set('{"lastName": "dada"}'::jsonb, '{lastN... ^ HINT : 沒有函數匹配給定的名稱和參數類型。您可能需要添加顯式類型轉換。SQL 狀態:42883 字符:44

這是一個更正:

UPDATE <TABLE NAME> SET
profile = jsonb_set('{"lastName": "dada"}'::jsonb, '{lastName}'::text[] , 
                      (profile->'lastName')::jsonb, false)
where email = 'abc@example.com'

錯誤在這里: concat('"', (profile->'lastName'), '"')::jsonb

請注意,這只是將姓氏字段設置回 sam 姓氏值 :-)

此致,
比亞尼

暫無
暫無

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

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