У меня есть поле JSONB в таблице. Я хочу обновить значение отдельного ключа, поэтому я использую метод jsonb_set. Ключ, который я хочу обновить, находится в переменной.
Вот объект jsonb, который я хочу обновить
{"yes":5,"total_votes":6,"no":1}
и переменная ключа vote_to
равна yes
.
Вот как я пытаюсь
update polls set result = jsonb_set(result, ('{'||vote_to||'}'),vote_count::text::jsonb) where id=_poll_id;
И ошибка
ERROR: function jsonb_set(jsonb, text, jsonb) does not exist
LINE 1: update polls set result = jsonb_set(result, ('{'||vote_to||'...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
А как мне обновить два ключа за один снимок? А также vote_count
является целым числом, поэтому мне нужно его двойное приведение, чтобы сделать jsonb
vote_count::text::jsonb
Есть ли другой способ сделать это?