Теперь я хочу использовать функцию PostGreSQL, чтобы изменить значение типа jsonb cloumn, теперь у меня есть функция достижения типа JSONВ postgresql как изменить значение в jsonb type 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