jsonb_populate_record()
是一个系统函数,用于将顶级 JSONB
对象扩展到具有指定基本类型复合类型的行。
jsonb_populate_record()
在 PostgreSQL 9.4 中添加。
用法
jsonb_populate_record (base
anyelement
,from_json
jsonb
) →anyelement
有关详细规范,请参阅 PostgreSQL文档。
更改历史记录
- PostgreSQL 9.4
- 添加 (提交 d9134d0a)
示例
对于 jsonb_populate_record()
的自包含示例,需要创建一个自定义类型
postgres=# CREATE TYPE keyrec AS (key INT, val TEXT); CREATE TYPE
如下所示,该类型由 jsonb_populate_record()
引用
postgres=# SELECT * FROM jsonb_populate_record( NULL::keyrec, '{"key": 1,"val": "foo"}' ); key | val -----+----- 1 | foo (1 row)
字段与任何输出列不对应的值将被忽略
postgres=# SELECT * FROM jsonb_populate_record( NULL::keyrec, '{"key": 1,"val": "foo", "bar": "baz"}' ); key | val -----+----- 1 | foo (1 row)
参考文献
- PostgreSQL 文档: JSON 处理函数