我正在嘗試將屬性添加到現有jsonb列(列“資料”)。
我想讓我的jsonb檔案像這樣記錄
{
// ... existing properties
"Filed": false // new property
}
我試過了
UPDATE "doc" SET "data" = jsonb_set("data"::jsonb, 'Filed', false, true)
我收到此錯誤:
[42883] ERROR: function jsonb_set(jsonb, unknown, boolean, boolean) does not exist
Hint: No function matches the given name and argument types.
You might need to add explicit type casts. Position: 46
uj5u.com熱心網友回復:
它應該是
jsonb_set("data"::jsonb, '{Filed}', 'false', TRUE)
第二個引數是一個陣列,表示相應鍵的路徑,'false'是 JSON 布林值的字串表示形式。
uj5u.com熱心網友回復:
更好地使用||運算子。
UPDATE "doc" SET "data" = "data" || '{"Filed": false}';
這個是等價的,但更適合引數化:
UPDATE "doc" SET "data" = "data" || jsonb_build_object('Filed', false);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/511359.html
上一篇:如何使重復資料在內部聯接查詢Postgres中只顯示一次?
下一篇:帶有陣列通配符的postgresjsonb查詢,例如jsonpath:"$.data.text1[?(@.lang=="de")]"
