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