# 52.12.pg_collation
目录pg_collation
描述了可用的排序规则,它们本质上是从 SQL 名称到操作系统区域设置类别的映射。看第 24.2 节了解更多信息。
表 52.12.pg_collation
列
列类型 描述 |
---|
样的 样的 行标识符 |
校名 姓名 排序规则名称(每个命名空间和编码唯一) |
命名空间 样的 (参考pg_namespace .样的 )包含此排序规则的命名空间的 OID |
老板 样的 (参考pg_authid .样的 )排序规则的所有者 |
合作提供者 字符 整理提供者: d = 数据库默认值,c =库,一世 = 重症监护室 |
碰撞确定性 布尔 排序规则是确定性的吗? |
协同编码 整数4 排序规则适用的编码,如果适用于任何编码,则为 -1 |
整理 姓名 LC_COLLATE 对于这个排序规则对象 |
colctype 姓名 LC_CTYPE 对于这个排序规则对象 |
转换 文本 提供者特定的排序规则版本。这会在创建排序规则时记录下来,然后在使用排序规则时进行检查,以检测排序规则定义中可能导致数据损坏的更改。 |
请注意,此目录上的唯一键是 (校名
,协同编码
,命名空间
) 不只是 (校名
,命名空间
)。PostgreSQL 通常会忽略所有没有的排序规则协同编码
等于当前数据库的编码或 -1,并创建与具有相同名称的条目的新条目协同编码
= -1 是禁止的。因此,使用合格的 SQL 名称就足够了 (图式
.姓名
) 来标识排序规则,即使根据目录定义这不是唯一的。以这种方式定义目录的原因是 initdb 在集群初始化时用系统上所有可用语言环境的条目填充它,因此它必须能够保存可能在集群中使用的所有编码的条目。
在里面模板0
数据库,创建其编码与数据库编码不匹配的排序规则可能很有用,因为它们可以匹配后来克隆的数据库的编码模板0
.这目前必须手动完成。