pg_collation
#目录 pg_collation
描述了可用的排序规则,它们本质上是从 SQL 名称到操作系统区域设置类别的映射。有关更多信息,请参阅 第 23.2 节。
表 52.12. pg_collation
列
列 类型 描述 |
---|
行标识符 |
排序规则名称(在命名空间和编码中唯一) |
包含此排序规则的命名空间的 OID |
排序规则的所有者 |
排序规则的提供程序: |
排序规则是否是确定性的? |
排序规则适用的编码,或 -1 表示适用于任何编码 |
此排序规则对象的 |
此排序规则对象的 |
此排序规则对象的排序规则提供程序区域设置名称。如果提供程序是 |
此排序规则对象的 ICU 排序规则规则 |
排序规则的提供程序特定版本。此版本在创建排序规则时记录,然后在使用时进行检查,以检测可能导致数据损坏的排序规则定义中的更改。 |
请注意,此目录的唯一键是(collname
、collencoding
、collnamespace
),而不仅仅是(collname
、collnamespace
)。PostgreSQL 通常会忽略所有 collencoding
不等于当前数据库编码或 -1 的排序规则,并且禁止创建与 collencoding
= -1 的条目具有相同名称的新条目。因此,即使根据目录定义不是唯一的,使用限定 SQL 名称(schema
.name
)来标识排序规则就足够了。定义目录的方式是因为 initdb 在群集初始化时会用系统中所有可用区域设置的条目填充它,因此它必须能够容纳群集中可能使用的所有编码的条目。
在 template0
数据库中,创建编码不匹配数据库编码的排序规则可能很有用,因为它们可以匹配后来从 template0
克隆的数据库的编码。目前这需要手动完成。
如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。