此条目与 PostgreSQL 功能相关,该功能是 PostgreSQL 17 的一部分,预计将于 2024 年底发布。
jsonb_populate_record_valid()
是一个用于测试 jsonb_populate_record()
的系统函数。
jsonb_populate_record_valid()
在 PostgreSQL 17 中添加。
用法
jsonb_populate_record_valid (base
anyelement
,from_json
json
) →boolean
如果提供的 json
值是有效的输入,则返回 true
,否则返回 false
。
更改历史记录
- PostgreSQL 17
- 添加 (提交 1edb3b49)
示例
jsonb_populate_record_valid()
的基本用法示例
postgres=# CREATE TYPE jsonb_test AS (val CHAR(3)); CREATE TYPE postgres=# SELECT jsonb_populate_record_valid( NULL::jsonb_test, '{"val": "foobar"}' ); jsonb_populate_record_valid ----------------------------- f (1 row)
这里提供的值("foobar
")超过了 jsonb_test
类型的长度,因此返回 false
。如果将相同的参数提供给 jsonb_populate_record()
,则会引发 ERROR
postgres=# SELECT jsonb_populate_record( NULL::jsonb_test, '{"val": "foobar"}' ); ERROR: value too long for type character(3)
参考
- PostgreSQL 17 文档: JSON 处理函数