При обновлении реляционной таблицы:
CREATE TABLE foo ( id serial primary key, credit numeric);
UPDATE foo SET bar = bar + $1 WHERE id = $2;
Однако эквивалент в JSON не работает:
CREATE TABLE foo ( id serial primary key, data json);
UPDATE foo SET data->'bar' = data->'bar' + $1 WHERE id = $2;
Ошибка, которую я получаю, это error: syntax error at or near "->"
- это довольно неоднозначно.
Как это сделать?
Я использую postgres 9.3.4
В свете комментария @GordonLinoff ниже я создал запрос функции: https://postgresql.uservoice.com/forums/21853-general/suggestions/6466818-create-update-delete-on-json-keys
Вы можете проголосовать, если хотите эту функцию.