Postgres jsonb_set объединяет текущее значение - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь использовать jsonb_set для обновления диапазона json объектов в моей базе данных. Я могу заставить запрос работать, который обновляет объект со строковым значением, однако я не могу заставить его обновляться с использованием текущего значения.

UPDATE entity
SET properties = jsonb_set(properties, '{c_number}', concat('0', properties->>'c_number'))
WHERE type = 1 and length(properties->>'c_number') = 7

Выше не работает в его текущем формате, я думаю, что проблема в properties->>'c_number' внутри jsonb_set. Есть ли способ получить доступ к текущему значению и просто добавить начальный 0?

1 Ответ

1 голос
/ 21 января 2020

Нашел решение:

UPDATE entity
SET properties = jsonb_set(properties, '{c_number}', concat('"0', properties->>'c_number', '"')::jsonb)
WHERE type = 1 and length(properties->>'c_number') = 7
...