sql >> Database >  >> RDS >> PostgreSQL

Geneste sleutel bijwerken met postgres json-veld in Rails

Er is geen functie om de json-sleutel te vervangen, dus u moet het oude object verwijderen en een nieuwe toevoegen:

update moves 
set data = jsonb_set(
    data::jsonb,
    array['boxes'],
    (data->'boxes')::jsonb - 'book' || jsonb_build_object('book_new', data->'boxes'->'book')
    )
where data ->> 'boxes' like '%book%'
returning *;

                         data                         
------------------------------------------------------
 {"boxes": {"moving": 2, "book_new": 2}, "goods": {}}
(1 row)



  1. Hoe weet je wanneer GroovyStrings niet hetzelfde worden behandeld als Strings?

  2. Oracle trimt witruimte aan de binnenkant van een string

  3. MySQL/MariaDB - bestellen op binnen-subquery

  4. Verbinding maken met Mysql op AWS Elastic Beanstalk