Обновление нескольких значений в данных jsonb в PostgreSQL


Мне нужно обновить данные jsonb (столбец - > пользователи) в моей таблице "настройки" Моих данных JSONB как

'{
    "Email": "aaaa",
    "UserId": "49",
    "Created": "11/13/2016",
    "EntityId": "1",
    "IsActive": "False",
    "Modified": "11/13/2016",
    "Username": "aa"
}' 

В этой строке json мне нужно обновить Email, IsActive, Username вместе. Я попробовал ниже обновить запрос,его работа нормально. Но это для одного обновления значения.

UPDATE settings 
SET users = jsonb_set(users, '{Email}', '"aa"') 
WHERE users @> '{"UserId":"49"}';

Как обновить для обновления нескольких значений? Я использую postgres 9.5.

1 2

1 ответ:

Используйте оператор конкатенации :

UPDATE settings 
SET users = users || '{"Email": "new email", "IsActive": "True", "Username": "new username"}'
WHERE users @> '{"UserId":"49"}';