Aj A Aj A - 1 year ago 100
JSON Question

Update multiple values in a jsonb data in postgressql

I need to update a jsonb data(column->users) in my table 'settings'
My jsonb data is like

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

In this json string I need to update Email,IsActive,Username together.
I tried the below update query,its working fine. But that is for a single value updation.

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

Can anyone help to update for multiple value updation? I am using postgres 9.5

Answer Source

Use the concatenation operator:

UPDATE settings 
SET users = users || '{"Email": "new email", "IsActive": "True", "Username": "new username"}'
WHERE users @> '{"UserId":"49"}';
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download