Postgres 从 json 字段创建表

Posted

技术标签:

【中文标题】Postgres 从 json 字段创建表【英文标题】:Postgres create table from json field 【发布时间】:2022-01-19 05:33:10 【问题描述】:

我在名为 foo 的表 A 中有这个 json 字段(A.foo 是 json 数据)。

所有foo 值都只是像"["a": 1, "b": 2, "a": 3, "b": 4]" 这样的对象数组,我想要做的是遍历所有foo 值并生成如下表:

a | b
1 | 2
3 | 4

其中ab 是列,值是行。关于我该怎么做的任何想法?我的字段是json 而不是jsonb

【问题讨论】:

【参考方案1】:

根据Postgres documents,您可以使用json_to_recordset将数组o对象转换为记录集。

Demo

select 
  x.a,
  x.b
from 
  json_to_recordset('["a": 1, "b": 2, "a": 3, "b": 4]')
    as x(a int, b int)

【讨论】:

以上是关于Postgres 从 json 字段创建表的主要内容,如果未能解决你的问题,请参考以下文章

在基于 Django 的 GraphQL API 中为 postgres 表创建全局搜索字段的最佳方法?

如何从 json 创建表列和字段? (动态网格)

Postgres 从动态 sql 字符串创建本地临时表(在提交删除时)

Hive/Athena:创建表时忽略字段

从 CSV 文件(逗号分隔)创建 postgres 外部表,该文件有一个电子邮件列,其中多个电子邮件地址用逗号分隔

如何在 Postgres 中的 JSON 字段上创建索引?