一个 对象标识符类型
(也称为 OID 别名类型
)是一种特殊的 数据类型,作为各种 系统目录 表条目的 OID 的别名,它使得可以根据该行中引用的对象的名称来引用此类表中的行,而不是使用数字 OID。这极大地简化了涉及常见 系统目录 查找的许多操作,并且无需显式连接系统目录表。
例如,将表行的 tableoid
系统列强制转换为 regclass
将显示该行所属的表的名称
postgres=# SELECT tableoid::regclass, * FROM foo; tableoid | id ----------+---- foo | 1 (1 row)
(上面的示例的实际用途有限,但如果在分区表上运行类似的查询,将显示每一行实际所属的表)。
可用的对象标识符类型
截至 PostgreSQL 19,以下对象标识符类型可用
19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2 | 函数 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
regclass | to_regclass() |
|||||||||||||||||||||||||
regcollation | to_regcollation() |
|||||||||||||||||||||||||
regconfig | 不适用 | |||||||||||||||||||||||||
regdatabase | to_regdatabase() |
|||||||||||||||||||||||||
regdictionary | 不适用 | |||||||||||||||||||||||||
regnamespace | to_regnamespace() |
|||||||||||||||||||||||||
regoper | to_regoper() |
|||||||||||||||||||||||||
regoperator | to_regoperator() |
|||||||||||||||||||||||||
regproc | to_regproc() |
|||||||||||||||||||||||||
regprocedure | to_regprocedure() |
|||||||||||||||||||||||||
regrole | to_regrole() |
|||||||||||||||||||||||||
regtype | to_regtype() |
变更历史
- PostgreSQL
regdatabase
已添加(提交 bd09f024)
- PostgreSQL 13
regcollation
已添加(提交 a2b1faa0)
- PostgreSQL 9.5
- PostgreSQL 8.3
- PostgreSQL 7.3
参考资料
- PostgreSQL 文档: 对象标识符类型