pg_enum

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 48. 系统表 | 下一页

# 48.20. `pg_enum`

`pg_enum`表包含显示每个枚举类型值和标签的记录。 给定枚举类型的内部表示实际上是`pg_enum`里面相关行的OID。

表 48-20. `pg_enum` 字段

名字 | 类型 | 引用 | 描述
--- | --- | --- | ---
`oid` | `oid` |  | 行标识符(隐藏属性; 必须明确选择)
`enumtypid` | `oid` | ``pg_type`.oid` | 拥有这个枚举值的`pg_type`记录的OID
`enumsortorder` | `float4` |  | 这个枚举值在它的枚举类型中的排序位置
`enumlabel` | `name` |  | 这个枚举值的文本标签

`pg_enum`行的OID跟着一个特殊规则：偶数的OID保证用和它们的枚举类型一样的排序顺序排序。 也就是，如果两个偶数OID属于相同的枚举类型，那么较小的OID必须有较小`enumsortorder`值。 奇数OID需要毫无关系的排序顺序。这个规则允许枚举比较例程在许多常见情况下避开目录查找。 创建和修改枚举类型的例程只要可能就尝试分配偶数OID给枚举值。

当创建了一个枚举类型时，它的成员赋予了排序顺序位置 1..`n`。 但是随后添加的成员可能会分配`enumsortorder`的负值或分数值。 对这些值的唯一要求是它们要正确的排序和在每个枚举类型中唯一。

上一页 | 起始页 | 下一页
`pg_description` | 上一级 | `pg_event_trigger`