选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

52.20. pg_enum #

pg_enum目录包含每一个枚举类型的项,其中包括了值和标签。一个给定枚举值的内部表示实际上是它在pg_enum中的相关行的OID。

Table 52.20. pg_enum

Name 类型 引用 描述
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。对这些值的唯一要求是它们必须排序正确并且保持唯一。