sql >> Databáze >  >> RDS >> PostgreSQL

Jak vložit objekt JSON do vnořeného pole ve sloupci JSONB

Trik pro jsonb_set() spočívá v tom, že upravuje část jsonb objekt, ale vrátí celý objekt. Předáte mu tedy aktuální hodnotu sloupce a cestu, kterou chcete upravit (zde „stránky“, jako pole řetězců), pak vezmete stávající pole (my_column->'pages' ) a připojte || nový objekt k tomu. Všechny ostatní části jsonb objekt zůstal tak, jak byl. Efektivně přiřazujete ke sloupci zcela nový objekt, ale to je irelevantní, protože UPDATE stejně zapíše nový řádek do fyzické tabulky.

UPDATE my_table
SET my_column = jsonb_set(my_column, '{pages}', my_column->'pages' || new_json, true);

Volitelný create_missing parametr nastaven na true zde přidá objekt "pages", pokud již neexistuje.




  1. Jak upřednostnit určité dotazy v MySQL?

  2. Nelze zasáhnout proc uložený v oracle pomocí vzoru úložiště .Net EF(2.2) Core

  3. php problém s více databázemi

  4. Předejte pole jako hodnotu v ado.net DBParameter