我有一个简单的EAV表,我想将其转换为JSON/B并将其插入到一个列中,然后将其添加到实体表中。
这将用作迁移查询。
我的EAV:
记录(id,…)
recinfo(recordid、key、value)
对于记录表中的earch条目,它将为在recinfo表中可以找到的每个键/值创建一个json表示,并作为记录表上的更新发送。
我正在使用postgresql 10.3

最佳答案

以下是我一直在寻找的:

update
    record r
set
    infos = (
                select
                        json_agg(json_build_object('name',i.name,'value',i.value))
                from
                        recinfos i
                where
                        i.rec_id = r.id
            )

10-06 10:34