一个对象标识符类型
(也称为OID 别名类型
)是一种特殊的数据类型,充当各种OID的别名系统目录表条目,并可以通过该行引用的对象的名称而不是数字 OID 来引用该表中的行。这极大地简化了许多涉及常见系统目录查找的操作,并消除了显式连接系统目录表的需要。
例如,将表行的tableoid
系统列转换为regclass
将显示该行所属的表的名称
postgres=# SELECT tableoid::regclass, * FROM foo; tableoid | id ----------+---- foo | 1 (1 row)
(以上示例的实用价值有限,但如果在分区表上运行类似的查询,则将显示每行实际所属的表)。
可用的对象标识符类型
截至PostgreSQL 16,以下对象标识符类型可用
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 | n/a | ||||||||||||||||||||||
regdictionary | n/a | ||||||||||||||||||||||
regnamespace | to_regnamespace() |
||||||||||||||||||||||
regoper | to_regoper() |
||||||||||||||||||||||
regoperator | to_regoperator() |
||||||||||||||||||||||
regproc | to_regproc() |
||||||||||||||||||||||
regprocedure | to_regprocedure() |
||||||||||||||||||||||
regrole | to_regrole() |
||||||||||||||||||||||
regtype | to_regtype() |
更改历史记录
- PostgreSQL 13
regcollation
已添加(提交 a2b1faa0)
- PostgreSQL 9.5
- PostgreSQL 8.3
- PostgreSQL 7.3
参考文献
- PostgreSQL 文档: 对象标识符类型