LC_COLLATE和LC_CTYPE选项
本节将介绍如何通过CREATE DATABASE命令指定LC_COLLATE(字符排序规则)和LC_CTYPE(字符分类)。
查询字符集支持的LC_COLLATE和LC_CTYPE信息
执行下列SQL语句查询字符排序规则和字符分类。
SELECT pg_encoding_to_char(collencoding) AS encoding,collname,collcollate AS "LC_COLLATE",collctype AS "LC_CTYPE" FROM pg_collation;
encoding为空时,表示当前LC_COLLATE支持所有的字符集。
使用方式
创建一个 LC_COLLATE 和 LC_CTYPE 分别为 zh_CN.utf8 的数据库,其命令如下所示。
CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;
如果指定的LC_COLLATE与字符集不兼容,则会报如下错误信息。
- 指定的LC_COLLATE和LC_CTYPE必须与目标字符集兼容,否则会报错。
- 目前无法直接通过ALTER DATABASE命令修改已有数据库的LC_COLLATE和LC_CTYPE信息,但可以通过创建新的数据库,然后导出再导入数据的方式进行修改。