現在我想使用PostgreSQL功能改變jsonb型cloumn的價值,現在我有一個函數實現的類型JSON在postgresql中如何更改jsonb類型cloumn中的值?
CREATE OR REPLACE FUNCTION "json_object_set_key"(
"json" json,
"key_to_set" TEXT,
"value_to_set" anyelement
)
RETURNS json
LANGUAGE sql
IMMUTABLE
STRICT
AS $function$
SELECT COALESCE(
(SELECT ('{' || string_agg(to_json("key") || ':' || "value", ',') || '}')
FROM (SELECT *
FROM json_each("json")
WHERE "key" <> "key_to_set"
UNION ALL
SELECT "key_to_set", to_json("value_to_set")) AS "fields"),
'{}'
)::json
$function$;
,但我無法改變JSON類型jsonb,現在我想一個函數「 jsonb_object_set_key「誰可以實現,請幫助我,非常感謝。
你爲什麼不使用'jsonb_set()'? https://www.postgresql.org/docs/current/static/functions-json.html –
不要使用原始字符串連接來構建JSON。沒有理由,然後你不得不擔心逃避和引用規則。如果用pl/v8編寫,這個函數可能會更簡單。 – jpmc26
您使用的是哪個版本的PostgreSQL? – jpmc26