sql >> データベース >  >> RDS >> PostgreSQL

Postgresqlとjsonb-キー/値をマルチレベル配列に挿入する

    jsonb_array_elementsを使用します すべての配列要素をアンネストしてから、必要なjsonを追加し、jsonb_aggを使用します 再度集計するには:

    with cte as
     (select id,
             jsonb_agg(jsonb_set(val1,
                                 '{blocs}',
                                 (select jsonb_agg(arr2 || '{"type": "regular"}')
                                    from jsonb_array_elements(arr1.val1 - >
                                                              'blocs') arr2)))
        from challenge, 
             jsonb_array_elements(lines) arr1(val1)
       group by 1) 
    update challenge 
       set lines = (cte.jsonb_agg) 
      from cte 
     where challenge.id = cte.id
    

    デモ




    1. OracleREGEX_SUBSTRがnull値を尊重しない

    2. パイプからのMysqlimport

    3. Flaskの場合-ValueErrorの移行:位置15の接続文字列の補間構文が無効です

    4. MySQLはテーブルを変更し、データをテキストから日時に変換します