2025年9月25日: PostgreSQL 18 发布!
支持的版本:当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1

35.7. character_sets #

视图character_sets标识了当前数据库中可用的字符集。由于PostgreSQL不支持在同一数据库中使用多个字符集,因此该视图只显示一个,即数据库编码。

请注意SQL标准中以下术语的用法:

字符集(character repertoire)

抽象的字符集合,例如UNICODEUCSLATIN1。它不是作为SQL对象公开的,但在该视图中可见。

字符编码形式(character encoding form)

某种字符集的编码。大多数较旧的字符集只有一种编码形式,因此它们没有单独的名称(例如,LATIN2是一种适用于LATIN2字符集的编码形式)。但例如Unicode有UTF8UTF16等编码形式(并非所有都受PostgreSQL支持)。编码形式不是作为SQL对象公开的,但在该视图中可见。

字符集(character set)

一个命名的SQL对象,用于标识字符集、字符编码和默认排序规则。预定义的字符集通常会与编码形式同名,但用户可以定义其他名称。例如,UTF8字符集通常会标识UCS字符集、UTF8编码形式和某种默认排序规则。

你可以将PostgreSQL中的“编码”(encoding)理解为字符集或字符编码形式。它们具有相同的名称,并且一个数据库中只能有一个。

表 35.5. character_sets

列 类型

描述

character_set_catalog sql_identifier

字符集目前并未实现为模式对象,因此此列为NULL。

character_set_schema sql_identifier

字符集目前并未实现为模式对象,因此此列为NULL。

character_set_name sql_identifier

字符集的名称,目前实现为显示数据库编码的名称

character_repertoire sql_identifier

字符集,如果编码是UTF8,则显示UCS,否则仅显示编码名称

form_of_use sql_identifier

字符编码形式,与数据库编码相同

default_collate_catalog sql_identifier

包含默认排序规则的数据库名称(如果有标识排序规则,则始终是当前数据库)

default_collate_schema sql_identifier

包含默认排序规则的模式名称

default_collate_name sql_identifier

默认排序规则的名称。默认排序规则被识别为与当前数据库的COLLATECTYPE设置匹配的排序规则。如果不存在这样的排序规则,则此列以及相关的模式和目录列将为NULL。


提交更正

如果您在文档中发现任何不正确、与您对特定功能的实际体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。