jsonb_set()
の秘訣 jsonb
の一部を変更するということです オブジェクトですが、オブジェクト全体を返します。したがって、変更する列の現在の値と変更するパス(ここでは「ページ」、文字列配列として)を渡し、次に既存の配列(my_column->'pages'
)を取得します。 )そして||
を追加します それへの新しいオブジェクト。 jsonb
の他のすべての部分 オブジェクトはそのままです。完全に新しいオブジェクトを列に効果的に割り当てていますが、UPDATE
であるため、これは関係ありません。 とにかく、新しい行を物理テーブルに書き込みます。
UPDATE my_table
SET my_column = jsonb_set(my_column, '{pages}', my_column->'pages' || new_json, true);
オプションのcreate_missing
パラメータをtrue
に設定 「pages」オブジェクトがまだ存在しない場合は、ここに追加します。