CREATE COLLATION
From PostgreSQL wiki
Jump to navigationJump to search名字
CREATE COLLATION -- 定义一个新的字符序
语法概要
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_CTYPE参数。
- lc_collate
- 使用操作系统特定区域的LC_COLLATE信息。区域必须能适用于当前数据库编码。(详细的规则请参见 CREATE DATABASE命令)
- lc_ctype
- 使用操作系统特定区域的LC_CTYPE信息。区域必须能适用于当前数据库编码。(详细的规则请参见 CREATE DATABASE命令)
- existing_collation
- 拷贝的现有字符序名字。新定义的字符序和被拷贝的字符序具有相同的属性,但它们是独立的对象。
注意
使用 DROP COLLATION 命令删除一个用户自定义字符序。
PostgreSQL对字符序的支持可以参见第 22.2 章。
示例
从操作系统区域 fr_FR.utf8 创建一个字符序(假定当前数据库编码为UTF8):
CREATE COLLATION french (LOCALE = 'fr_FR.utf8');
从现有字符序创建一个字符序:
CREATE COLLATION german FROM "de_DE";
如果可以在应用中使用操作系统无关的字符序的话,往往会带来方便的效果。
兼容性
SQL 标准只有从现有字符序拷贝的操作。新建字符序的操作属于PostgreSQL的扩展。