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处理函数