VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

CREATE COLLATION

CREATE COLLATION - 定义新的排序规则

语法格式

CREATE COLLATION [ IF NOT EXISTS ] name (
    [ LOCALE = locale, ]
    [ LC_COLLATE = lc_collate, ]
    [ LC_CTYPE = lc_ctype, ]
    [ PROVIDER = provider, ]
    [ VERSION = version ]
)
CREATE COLLATION [ IF NOT EXISTS ] name FROM existing_collation

说明

CREATE COLLATION使用指定的操作系统区域设置或复制现有排序规则定义新排序规则。

为了能够创建排序规则,您必须对目标模式具有 CREATE 权限。

参数说明

  • IF NOT EXISTS

    如果已经存在了同名的排序规则,则不要抛出错误。在这种情况下发出一个通知。 请注意,不保证已经存在的排序规则与要创建的这个类似。

  • name

    排序规则的名字,可以被模式限定。如果没有用模式限定,该排序规则 会被定义在当前模式中。排序规则名称在其所处的模式中必须唯一(系统 目录可以为其他编码包含具有相同名称的排序规则,但数据库编码不匹配 时它们会被忽略)。

  • locale

    这是一种一次设置LC_COLLATE 和LC_CTYPE的快捷方式。如果你指定它,你就 不能指定那两个参数。

  • lc_collate

    为LC_COLLATE区域分类使用指定的操作系统 区域。

  • lc_ctype

    为LC_CTYPE区域分类使用指定的操作系统 区域。

  • provider

    指定用于与此排序规则相关的区域服务的提供程序。可能的值是: icu、 libc。 默认是libc。 可用的选择取决于操作系统和构建选项。

  • version

    指定使用该排序规则存储的版本字符串。通常忽略该选项, 这会导致版本从操作系统提供的排序规则实际版本中计算出来。 此选项旨在供pg_upgrade用于复制现有安装中的版本。 又见ALTER COLLATION获取如何处理排序规则版本错误匹配。

  • existing_collation

    要复制的一种现有的排序规则的名称。新的排序规则将和现有的具有 同样的属性,但是它是一个独立的对象。

注意事项

使用 DROP COLLATION 删除用户定义的排序规则。

使用libc排序规则提供程序时,语言环境必须适用于当前的数据库编码。 有关精确的规则,请参见CREATE DATABASE。

示例

从操作系统区域fr_FR.utf8创建一种排序规则(假定 当前数据库编码是UTF8):

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

使用German phone book排序顺序使用ICU提供程序创建排序规则:

CREATE COLLATION german_phonebook (provider = icu, locale = 'de-u-co-phonebk');

要从现有排序规则创建排序规则:

CREATE COLLATION german FROM "de_DE";

这可以方便地在应用程序中使用独立于操作系统的排序规则名称。