此条目涉及 PostgreSQL 的一项功能,该功能是 PostgreSQL 17 的一部分,预计将于 2024 年底发布。
pg_basetype()
是一个系统函数,返回 OID,表示 域 的基本类型。
pg_basetype()
在 PostgreSQL 17 中添加。
用法
pg_basetype (regtype
) →regtype
如果存在域依赖项链,它将递归直到找到基本类型。
如果提供的参数是非域类型的 OID,则按原样返回参数值。
如果提供的参数不是有效的类型 OID,则返回 NULL
。
更改历史记录
- PostgreSQL 17
- 添加(提交 b154d8a6)
示例
pg_basetype()
的基本用法示例
postgres=# CREATE DOMAIN git_sha1 AS CHAR(40) NOT NULL CHECK (VALUE ~ '^[0-9a-fA-F]+$'); CREATE DOMAIN postgres=# SELECT pg_basetype('git_sha1'::regtype); pg_basetype ------------- character (1 row)
非域类型按原样返回
postgres=# SELECT pg_basetype('varchar'::regtype); pg_basetype ------------------- character varying (1 row)
对于不表示有效类型的 OID,返回 NULL
postgres=# SELECT pg_basetype(-1) IS NULL; ?column? ---------- t (1 row)
参考
- PostgreSQL 17 文档: 系统目录信息函数