CREATE COLLATION

From PostgreSQL wiki

(Difference between revisions)
Jump to: navigation, search
(语法概要)
 
Line 5: Line 5:
 
===== 语法概要 =====
 
===== 语法概要 =====
  
<pre>
+
    CREATE COLLATION '''name''' (
CREATE COLLATION name (
+
            [ LOCALE = '''locale''', ]
    [ LOCALE = locale, ]
+
            [ LC_COLLATE = '''lc_collate''', ]
    [ LC_COLLATE = lc_collate, ]
+
            [ LC_CTYPE = '''lc_ctype''' ]
    [ LC_CTYPE = lc_ctype ]
+
    )
)
+
    CREATE COLLATION '''name''' FROM '''existing_collation'''
CREATE COLLATION name FROM existing_collation
+
</pre>
+
  
 
===== 描述 =====
 
===== 描述 =====

Latest revision as of 10:17, 11 June 2013

Contents

[edit] 名字

CREATE COLLATION -- 定义一个新的字符序

[edit] 语法概要
   CREATE COLLATION name (
            [ LOCALE = locale, ]
            [ LC_COLLATE = lc_collate, ]
            [ LC_CTYPE = lc_ctype ]
   )
   CREATE COLLATION name FROM existing_collation
[edit] 描述

CREATE COLLATION 命令利用操作系统的特定区域信息定义一个新的字符序,或者通过拷贝一个现有的定义。

为了创建字符序,你必须在目标模式上具有 CREATE 权限。

[edit] 参数
name
字符序的名字,可以使用模式进行修饰。如果没有用模式修饰,那么就在当前模式中定义。一个模式中的字符序名字必须唯一。(系统编目中可以存在同名但不同编码的字符序,但是如果数据库编码不匹配的话这些字符序会被忽略)
locale
同事设置LC_COLLATE和LC_CTYPE的快捷方式。如果使用这个参数,就不能再使用LC_COLLATE或LC_CTYPE参数。
lc_collate
使用操作系统特定区域的LC_COLLATE信息。区域必须能适用于当前数据库编码。(详细的规则请参见 CREATE DATABASE命令)
lc_ctype
使用操作系统特定区域的LC_CTYPE信息。区域必须能适用于当前数据库编码。(详细的规则请参见 CREATE DATABASE命令)
existing_collation
拷贝的现有字符序名字。新定义的字符序和被拷贝的字符序具有相同的属性,但它们是独立的对象。
[edit] 注意

使用 DROP COLLATION 命令删除一个用户自定义字符序。

PostgreSQL对字符序的支持可以参见第 22.2 章。

[edit] 示例

从操作系统区域 fr_FR.utf8 创建一个字符序(假定当前数据库编码为UTF8):

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

从现有字符序创建一个字符序:

   CREATE COLLATION german FROM "de_DE";

如果可以在应用中使用操作系统无关的字符序的话,往往会带来方便的效果。

[edit] 兼容性

SQL 标准只有从现有字符序拷贝的操作。新建字符序的操作属于PostgreSQL的扩展。

[edit] 参见

ALTER COLLATION, DROP COLLATION

Personal tools