历史版本。 PostgreSQL 9.5 已结束支持。 2021-02-11. 请参阅 当前版本手册.
CREATE COLLATION
CREATE COLLATION — 定义一种新排序规则
大纲
CREATE COLLATIONname( [ LOCALE =locale, ] [ LC_COLLATE =lc_collate, ] [ LC_CTYPE =lc_ctype] ) CREATE COLLATIONnameFROMexisting_collation
描述
CREATE COLLATION使用指定的操作系统区域设置,或者通过复制现有排序规则,定义一个新的排序规则。
要创建排序规则,你必须拥有目标模式上的
CREATE权限。
参数
name排序规则的名称。排序规则名称可以带有模式限定。如果没有,排序规则将在当前模式中定义。排序规则名称在该模式中必须唯一。(系统目录中可能包含其他编码的同名排序规则,但如果数据库编码不匹配,则这些排序规则将被忽略。)
locale这是同时设置
LC_COLLATE和LC_CTYPE的快捷方式。如果指定了此选项,则不能指定这两个参数中的任何一个。lc_collate为
LC_COLLATE区域类别使用指定的操作系统区域设置。该区域设置必须适用于当前数据库编码。(有关精确规则,请参见CREATE DATABASE。)lc_ctype为
LC_CTYPE区域类别使用指定的操作系统区域设置。该区域设置必须适用于当前数据库编码。(有关精确规则,请参见CREATE DATABASE。)existing_collation要复制的现有排序规则的名称。新的排序规则将具有与现有排序规则相同的属性,但它是一个独立对象。
示例
创建排序规则,使用操作系统区域设置fr_FR.utf8(假设当前数据库编码为UTF8):
CREATE COLLATION french (LOCALE = 'fr_FR.utf8');
从现有排序规则创建排序规则:
CREATE COLLATION german FROM "de_DE";
这在应用程序中使用与操作系统无关的排序规则名称时非常方便。
兼容性
在 SQL 标准中有一个CREATE COLLATION
语句,但它仅限于复制现有排序规则。创建新排序规则的语法是
PostgreSQL扩展。