多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 47.21\. `pg_enum` `pg_enum`表包含显示每个枚举类型值和标签的记录。 给定枚举类型的内部表示实际上是`pg_enum`里面相关行的OID。 **Table 47-21\. `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`的负值或分数值。 对这些值的唯一要求是它们要正确的排序和在每个枚举类型中唯一。