PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak wypchnąć obiekt JSON do tablicy zagnieżdżonej w kolumnie JSONB?

Sztuczka do jsonb_set() jest to, że modyfikuje część jsonb obiekt, ale zwraca cały obiekt. Więc przekazujesz mu bieżącą wartość kolumny i ścieżkę, którą chcesz zmodyfikować (tutaj "strony", jako tablicę ciągów), a następnie bierzesz istniejącą tablicę (my_column->'pages' ) i dołącz || nowy obiekt do niego. Wszystkie inne części jsonb obiekt pozostają takie, jakie były. Efektywnie przypisujesz zupełnie nowy obiekt do kolumny, ale jest to nieistotne, ponieważ UPDATE i tak zapisuje nowy wiersz do tabeli fizycznej.

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

Opcjonalny create_missing parametr ustawiony na true tutaj dodaje obiekt "strony", jeśli jeszcze nie istnieje.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql zmienia typ kolumny z int na UUID

  2. Wyjaśnienie polecenia PostgreSQL VALUES

  3. Klucz obcy typu seryjnego - upewnij się, że zawsze wypełniany ręcznie

  4. Jak przepisać instrukcję SELECT ... CROSS JOIN LATERAL ... dla starszych wersji PostgreSQL?

  5. Pokazać wszystkie wyniki w postgresql?