jsonb_populate_record() 是一个系统函数,用于将顶层的 JSONB 对象扩展为具有指定基本类型的复合类型的行。
jsonb_populate_record() 添加于 PostgreSQL 9.4。
用法
jsonb_populate_record (baseanyelement,from_jsonjsonb) →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 处理函数
