历史版本。 PostgreSQL 10 已结束支持。 2022-11-10. 请参阅 当前版本手册.
51.20. pg_enum #
pg_enum 目录包含每一个枚举类型的项,其中包括了值和标签。一个给定枚举值的内部表示实际上是它在 pg_enum 中的相关行的 OID。
表 51.20. pg_enum 列
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
oid | oid | 行标识符(隐藏属性,必须显式选择) | |
enumtypid | oid | | 包含此枚举值的 pg_type 项的 OID
|
enumsortorder | float4 | 此枚举值在其枚举类型中的排序位置 | |
enumlabel | name | 此枚举值的文本标签 |
pg_enum 行的 OID 值遵循一种特殊的规则:即偶数 OID 值被保证按照其枚举类型的排序顺序进行排序。即如果两个偶数 OID 属于同一枚举类型,较小的 OID 必然具有较小的 enumsortorder 值。奇数 OID 值不需要遵循排序顺序。这种规则使得枚举比较例程在很多常见情况下可以避免系统目录查找。创建和修改枚举类型的例程将尝试尽可能地为枚举值分配偶数 OID。
当一个枚举类型被创建后,其成员会被分配排序位置 1..n。但后来增加的成员可能会被赋予负值或分数值的 enumsortorder。对这些值的唯一要求是它们必须在每个枚举类型内排序正确且唯一。