↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1
历史版本。 PostgreSQL 9.6 已结束支持。 2021-11-11. 请参阅 当前版本手册.

50.12. pg_collation #

目录pg_collation描述可用的排序规则,其本质上是从 SQL 名字到操作系统区域设置类别的映射。更多信息参见第 23.2 节。

表 50.12. pg_collation 列

名称类型引用 描述
oidoid 行标识符(隐藏属性,必须显式选择)
collnamename  排序规则名字(在每一个名字空间和编码中唯一)
collnamespaceoidpg_namespace.oid 包含该排序规则的名字空间的OID
collowneroidpg_authid.oid 排序规则的拥有者
collencodingint4  该排序规则可应用的编码,或以-1表示它可用于任何编码
collcollatename  此排序规则对象的 LC_COLLATE
collctypename  此排序规则对象的 LC_CTYPE

注意在这个目录中的唯一键是(collname、collencoding、collnamespace),不仅仅是(collname、collnamespace)。PostgreSQL 通常会忽略所有 collencoding 既不等于当前数据库编码、也不等于 -1 的排序规则,并且禁止创建与 collencoding = -1 的项同名的新项。因此,使用限定的 SQL 名字(schema.name)来标识一个排序规则已经足够,即使按目录定义它并不唯一。之所以将该目录定义成这样,是因为 initdb 在集簇初始化时会用系统上所有可用的区域设置填充它,因此它必须能够容纳集簇中未来可能使用到的所有编码的项。

在template0数据库中,创建与数据库编码不匹配的排序规则可能很有用,因为它们可以匹配之后从template0克隆出的数据库的编码。目前这必须手工完成。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.