PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# 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`命令可以删除一个用户定义的排序规则。

参见第 22.2 节了解更多在PostgreSQL中支持的排序规则。

## 例子

根据操作系统中的系统字符编码`fr_FR.utf8`来创建一个排序规则（假定当前数据库的编码是`UTF8`):

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

从一个已存在的排序规则中复制一个新的排序规则：

    CREATE COLLATION german FROM "de_DE";

这对在应用程序中使用独立于操作系统的排序规则名是很方便的。

## 兼容性

在SQL标准中有`CREATE COLLATION`命令，但它仅限于从已存在的排序规则中拷贝。 允许创建一个新的排序规则是PostgreSQL的扩展。

## 参见

ALTER COLLATION, DROP COLLATION

上一页 | 起始页 | 下一页
CREATE CAST | 上一级 | CREATE CONVERSION