@valentinesowl
Инженер, программист

Как сделать UPDATE в JSONB?

Суть вопроса в следующем.
Существует таблица test с полями id и json. В поле json типа jsonb содержатся записи в формате json:
{
"a" : 5,
"b" : 5,
"c" : 5
}

Я могу выбрать данные запросом
SELECT json->'s' FROM test WHERE id = 5;
Каким образом можно сделать UPDATE json->'s' = 6;?
Каким образом можно добавить в этот объект новую пару ключ-значение json->'d' = 5?
  • Вопрос задан
  • 13344 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Придётся перезаписывать значение json-поля. Чтобы изменить "с" на 6:
UPDATE test
SET json = json || '{"c":6}'::jsonb
WHERE id = 5;

Чтобы добавить новый ключ:
UPDATE test
SET json = json || '{"d":5}'::jsonb
WHERE id = 5;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы