CREATE COLLATION
CREATE COLLATION¶
使用指定的操作系统语言环境或通过复制现有的排序规则来定义新的排序规则。
- 语法
-
``` sql CREATE COLLATION name (
[ LOCALE = locale, ]
[ LC_COLLATE = lc_collate, ]
[ LC_CTYPE = lc_ctype ])CREATE COLLATION name FROM existing_collation ```
- 描述
- 为了能够创建排序规则,您必须在目标模式上具有
CREATE
权限。 - 参数
-
该SQL命令参数说明见下
name
- 排序规则的名称。排序规则名称可以由模式指定,如果不是,则在当前模式中定义排序规则。 排序规则名称在该模式中必须唯一。系统catalog可以包含与其他编码相同名称的排序规则,但是如果数据库编码不匹配,则将忽略这些排序规则)。
locale
- 这是一次设置
LC_COLLATE
和LC_CTYPE
的快捷方式。 如果指定此选项,则不能指定这两个参数中的任何一个。 lc_collate
- 将指定的操作系统语言环境用于
LC_COLLATE
语言环境类别。 语言环境必须适用于当前数据库编码。(有关详细规则,请参见CREATE DATABASE。) lc_ctype
- 将指定的操作系统语言环境用于
LC_CTYPE
语言环境类别。 语言环境必须适用于当前数据库编码。 (有关详细规则,请参见CREATE DATABASE。) existing_collation
- 要复制的现有排序规则的名称。 新的归类将具有与现有归类相同的属性,但是它将是一个独立的对象。
- 注解
-
为了能够创建排序规则,您必须在目标模式上具有
CREATE
权限。使用
DROP COLLATION
删除用户定义的排序规则。有关SeaboxMPP数据库中归类支持的更多信息,请参见PostgreSQL文档中的归类支持。
- 示例
-
要从操作系统语言环境
fr_FR.utf8
创建排序规则(假设当前数据库编码为UTF8
):CREATE COLLATION french (LOCALE = 'fr_FR.utf8');
要从现有排序规则创建排序规则:
CREATE COLLATION german FROM "de_DE";
能够在应用程序中使用独立于操作系统的排序规则名称可能很方便。
- 兼容性说明
- SQL标准中有一个
CREATE COLLATION
语句,但是它仅限于复制现有的排序规则。创建新排序规则的语法是SeaboxMPP数据库扩展。 - 相关SQL命令
ALTER COLLATION
,DROP COLLATION