初始化集群,建库,建表,建索引,sort | compare QUERY时都可以指定COLLATE。
用法参考
https://www.postgresql.org/docs/9.5/static/sql-createtable.html
https://www.postgresql.org/docs/9.5/static/collation.html

CREATE DATABASE name[ [ WITH ] [ OWNER [=] user_name ][ TEMPLATE [=] template ][ ENCODING [=] encoding ][ LC_COLLATE [=] lc_collate ][ LC_CTYPE [=] lc_ctype ][ TABLESPACE [=] tablespace_name ][ ALLOW_CONNECTIONS [=] allowconn ][ CONNECTION LIMIT [=] connlimit ] ][ IS_TEMPLATE [=] istemplate ]
CREATE TABLE test1 (a text COLLATE "de_DE",b text COLLATE "es_ES",...
);
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON table_name [ USING method ]( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )[ WITH ( storage_parameter = value [, ... ] ) ][ TABLESPACE tablespace_name ][ WHERE predicate ]

Character-string data is sorted according to the collation that applies to the column being sorted.
That can be overridden at need by including a COLLATE clause in the expression, for example
ORDER BY mycolumn COLLATE "en_US".

如果你要在一个集群中创建不同的或者与模板库不兼容的LC怎么做呢?
通过template0创建即可,建议你这样做:
新建所有需求的lc库,以它们为模板再创建其他的库。

创建模板库,指定collate
ps PostgreSQL 9.5以下的版本不支持is_template选项,不加即可。

postgres=# create database tmpdb_zh_cn with template template0 lc_collate 'zh_CN.UTF8' lc_ctype 'zh_CN.UTF8' is_template=true;

在模板库中创建一些你需要预定义的东西,包括数据等等。

tmpdb_zh_cn=# create extension hstore;
CREATE EXTENSION

基于模板库创建数据库。

postgres=# create database db1_zh_cn with template tmpdb_zh_cn;
CREATE DATABASEtmp         | postgres | UTF8     | zh_CN.utf8 | zh_CN.utf8 |                       | 7360 kB | pg_default | tmpdb_zh_cn | postgres | UTF8     | zh_CN.UTF8 | zh_CN.UTF8 |                       | 7360 kB | pg_default |
(8 rows)

如果你要删除模板库,需要先把模板库改成普通库再删除。

postgres=# alter database tmpdb_zh_cn is_template false;
ALTER DATABASE
postgres=# drop database tmpdb_zh_cn ;
DROP DATABASE

查询PG支持的collate

postgres=# select * from pg_collation ;collname        | collnamespace | collowner | collencoding |      collcollate      |       collctype
-----------------------+---------------+-----------+--------------+-----------------------+-----------------------default               |            11 |        10 |           -1 |                       | C                     |            11 |        10 |           -1 | C                     | CPOSIX                 |            11 |        10 |           -1 | POSIX                 | POSIXaa_DJ                 |            11 |        10 |            6 | aa_DJ.utf8            | aa_DJ.utf8aa_DJ                 |            11 |        10 |            8 | aa_DJ                 | aa_DJaa_DJ.iso88591        |            11 |        10 |            8 | aa_DJ.iso88591        | aa_DJ.iso88591
......

查询列对应的collate
pg_catalog.pg_attribute.attcollation
对应 pg_collation.oid

PostgreSQL 创建库时如何指定 Collate, Ctype相关推荐

  1. PostgreSQL创建库、表空间、角色、SCHEMA

    前置 sudo su - postgres // 切换到postgres用户 1.PostgreSQL会在安装阶段默认创建一个超级用户角色和一个database,均是postgres, a.修改Pos ...

  2. git克隆代码库时使用指定的用户名密码

    git clone http://username:password@192.168.1.190:8080/repository/project.git

  3. oracle有几种类型表空间,oracle 数据创建时如何指定表空间类型

    oracle建表时指定了表空间为何没起作用? oracle 12c /windows ,实验过程如下: 1.建第一个表空间data_tbs_01,数可以直接在创建语句后面追加"tablesp ...

  4. 使用 GNU Libtool 创建库

    介绍 在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样.对于开发人员,如果尝试将使用动态库的软件在这些系 ...

  5. 转载:使用 GNU Libtool 创建库

    转载自:http://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/ 介绍 在不同的系统中建立动态链接库的方法有很大的差别,这 ...

  6. GCC 连接器、链接标准库 gcc -l、链接手动创建库(指定目录的库 gcc -L)

    1. 链接器 链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件. 在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等 ...

  7. 主库创建存储过程时从库显示 Error 1049

    MySQL Bugs: #72682: Replication MBR halts - stored procedure from unreplicated schema MySQL Bugs: #5 ...

  8. mysql创建数据库指定utf 8_MySQL创建数据库时指定编码utf8mb4和添加用户

    MySQL创建数据库时指定编码utf8mb4和添加用户 CREATE DATABASE `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_gene ...

  9. php指定编码创建,MYSQL创建数据库时指定编码

    mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的 ...

最新文章

  1. 函数重载需要注意的点
  2. 为什么很多人喜欢把软件装在D盘,而不是系统盘C
  3. Shell printf 命令
  4. IIS短文件/文件夹泄露漏洞
  5. outlook 单独安装_民强村排烟管道安装公司
  6. 算法设计与分析python_Python算法设计与分析
  7. python在统计专业的应用_Python统计学一数据的概括性度量详解
  8. Win7和Ubuntu14.10双系统
  9. 渗透测试学习 十一、 其他注入漏洞汇总
  10. 【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频
  11. spring3 的restful API RequestMapping介绍
  12. c语言指针测试代码,一个关于C语言指针的测试
  13. pfx导入后仍然打不开加密文件_天正CAD图纸加密和解密方法
  14. [React Native]StatusBar的使用
  15. solaris 查看CPU资源占用情况!
  16. BF2地图下载 战地系列非官方单机地图集
  17. android sdk 配置出错error: unknown argument --licenses
  18. eclipse安卓 DDMS中打不开Sdcard文件夹的问题
  19. tf_Course6循环神经网络
  20. 1.2.1 数据库系统特点

热门文章

  1. Python学习笔记4—Python字典元组
  2. 第7部分 组策略应用
  3. mysql5717开发设置怎么调回来_MYSQL5.7.17设置初始密码(转)
  4. Kubernetes — HOST-DEVICE CNI
  5. C 语言编程 — const 关键字
  6. 两个蓝牙模块配对的方法
  7. 作业03:格式化输出
  8. 全球可持续发展标准化城市联盟首个海外会议基地落户杭州
  9. 2017-2018-2 20179209《网络攻防》第六周作业
  10. 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.47. Gawk-4.1.1...