Как изменить имя ключа в объекте JSON, хранящемся в Postgres, для всех записей

Линии дешевы. Мощность процессора дешева.

Как правило, если я не разрабатываю какое-то абсолютно критичное для ресурса / скорость приложение, я бы всегда ошибался на стороне написания кода, который является

( a) Легко для любого другого разработчика следить за тем, что я делаю

(b) Комментировать определенные части кода, которые могут ему понадобиться

(c) Легко отлаживать, если что-то пойдет не так

(d) Легко модифицировать, если это необходимо в будущем (например, добавление / удаление кода)

Скорость или академическая элегантность кода являются вторичными по отношению к этим факторам из бизнеса перспектива. Это не означает, что я намеревался написать неуклюжий или уродливый код, но это MY-порядок приоритета.

Отключив фигурные скобки в большинстве случаев, для меня это делает (b), (c) и (d) более сложно (отметим, что это не невозможно). Я бы сказал, что использование фигурных скобок или нет не влияет на (a).

0
задан a_horse_with_no_name 16 April 2019 в 06:12
поделиться

1 ответ

Если имя может встречаться в JSON только один раз или если все вхождения должны быть заменены, если их больше, быстрое и грязное - это просто replace() в тексте:

UPDATE elbat
       SET value = replace(value::text, '"values"', '"breakdown"')::jsonb;

( Замените jsonb на json, если тип столбца json, а не jsonb.)

0
ответ дан sticky bit 16 April 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: