CREATE COLLATION
Name
CREATE COLLATION -- 定义一种新排序规则
Synopsis
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可移除用户定义的排序规则。
  
   关于 PostgreSQL 中支持的排序规则可见Section 23.2。
  
示例
   从操作系统区域fr_FR.utf8创建一种排序规则(假定
   当前数据库编码是UTF8):
CREATE COLLATION french (LOCALE = 'fr_FR.utf8');
  
   从一个现有的排序规则创建一个新的排序规则:
CREATE COLLATION german FROM "de_DE";
   能在应用中使用与操作系统无关的排序规则名称就很方便了。
  
兼容性
   在 SQL 标准中有一个CREATE COLLATION
   语句,但是它被限制为只能复制一个现有的排序规则。创建新排序规则的
   语法是一种PostgreSQL扩展。