Re: Updating jsonb rows

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Michael Moore <michaeljmoore(at)gmail(dot)com>
Cc: postgres list <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Updating jsonb rows
Date: 2017-08-12 01:18:32
Message-ID: CAKFQuwa5TfW1S9KY8hSRiLDqEPfOuuyh+4Q684iAm8w39CA4ZA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Fri, Aug 11, 2017 at 6:08 PM, Michael Moore <michaeljmoore(at)gmail(dot)com>
wrote:

> ​s​
> elect jsonb_set(j_final_rslt, '{0,prompt_seq}','99',true) into
> j_final_rslt;
>
> gives the result:
> BEFORE [{"prompt_seq": *150*, "attribute_name": "InsuredTimeframe"},
> {"prompt_seq": 1200, "attribute_name": "DriverOccupation"}]
>
> AFTER [{"prompt_seq": *99*, "attribute_name": "InsuredTimeframe"},
> {"prompt_seq": 1200, "attribute_name": "DriverOccupation"}]
>
> How could I change this to ALSO change the attribute_name on the 2nd
> record to "ABC". The AFTER result would ideally look like:
>
>
​This SO post seems like it should get you close. Basically you pull out
the 0th element, concatenate in the values you want to change, and supply
that result as the third jsonb_set argument.

https://stackoverflow.com/questions/38883233/postgres-jsonb-set-multiple-keys-update

David J.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Michael Moore 2017-08-12 02:41:44 Re: Always getting back a row, even with no results
Previous Message Michael Moore 2017-08-12 01:08:39 Updating jsonb rows