Postgres:如何从另一个表中的 json 数组列填充表?

问题描述 投票:0回答:1

在我的 Postgres 数据库中,我天真地在表

Foos
中创建了一列作为
json[]
,如下所示:

TABLE Foos

id | ... | baas
--------------------------------
1  | ... | [
   | ... |   {
   | ... |     "name": "a",
   | ... |     "property": "1",
   | ... |   },
   | ... |   {
   | ... |     "name": "b",
   | ... |     "property": "2",
   | ... |   },
   | ... |   ...
   | ... | ]
2  | ... | [ ... ]
3  | ... | [ ... ]

现在我想用 json 数组中的项目填充表

Baas
,如下所示:

TABLE Baas

id | foo_id | name | property 
------------------------------
1  |      1 |    a |        1
2  |      1 |    b |        2 

如何用简单的 SQL 来做到这一点?

sql json database postgresql supabase
1个回答
0
投票

我自己解决了:

INSERT INTO public.baas (foo_id, name, property)
SELECT 
    foo_id,
    array_element ->> 'name',
    (array_element ->> 'property')::integer
FROM (
    SELECT 
        id as foo_id, 
        unnest(baas) AS array_element
    FROM 
        public.foos
) AS subquery_alias;
© www.soinside.com 2019 - 2024. All rights reserved.