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

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.5 已结束支持。 2021-02-11. 请参阅 当前版本手册.

CREATE COLLATION

CREATE 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_COLLATE 和 LC_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扩展。

报告文档问题

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