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 文档: 系统目录信息函数
