选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1
历史版本PostgreSQL 9.1 已于 2016 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

CREATE COLLATION

CREATE COLLATION — define a new collation

大纲

CREATE COLLATION name (
    [ LOCALE = locale, ]
    [ LC_COLLATE = lc_collate, ]
    [ LC_CTYPE = lc_ctype ]
)
CREATE COLLATION name FROM existing_collation

描述

CREATE COLLATION使用指定的操作系统区域设 置,或者通过复制现有排序规则,定义一个新的排序规则。

要创建排序规则,你必须拥有目标模式上的 CREATE权限。

参数

name

排序规则的名称。排序规则名称可以带有模式限定。如果没有,排序规则将在当前模式中定义。排序规则名称在该模式中必须唯一。(系统目录中可能包含其他编码的同名排序规则,但如果数据库编码不匹配,则这些排序规则将被忽略。)

locale

这是同时设置 LC_COLLATELC_CTYPE 的快捷方式。如果指定了此选项,则不能指定这两个参数中的任何一个。

lc_collate

LC_COLLATE 区域类别使用指定的操作系统区域设置。该区域设置必须适用于当前数据库编码。(有关精确规则,请参见CREATE DATABASE。)

lc_ctype

LC_CTYPE 区域类别使用指定的操作系统区域设置。该区域设置必须适用于当前数据库编码。(有关精确规则,请参见CREATE DATABASE。)

existing_collation

要复制的现有排序规则的名称。新的排序规则将具有与现有排序规则相同 的属性,但它是一个独立对象。

注解

使用DROP COLLATION可移除用户定义的排序规则。

关于 PostgreSQL 中排序规则支持的更多信息, 见第 22.2 节

示例

创建排序规则,使用操作系统区域设置fr_FR.utf8(假设当前数据库编码为UTF8):

CREATE COLLATION french (LOCALE = 'fr_FR.utf8');

从现有排序规则创建排序规则:

CREATE COLLATION german FROM "de_DE";

这在应用程序中使用与操作系统无关的排序规则名称时非常方便。

兼容性

在 SQL 标准中有一个CREATE COLLATION 语句,但它仅限于复制现有排序规则。创建新排序规则的语法是 PostgreSQL扩展。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。