PostgreSQL 创建库时如何指定 Collate, Ctype
初始化集群,建库,建表,建索引,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相关推荐
- PostgreSQL创建库、表空间、角色、SCHEMA
前置 sudo su - postgres // 切换到postgres用户 1.PostgreSQL会在安装阶段默认创建一个超级用户角色和一个database,均是postgres, a.修改Pos ...
- git克隆代码库时使用指定的用户名密码
git clone http://username:password@192.168.1.190:8080/repository/project.git
- oracle有几种类型表空间,oracle 数据创建时如何指定表空间类型
oracle建表时指定了表空间为何没起作用? oracle 12c /windows ,实验过程如下: 1.建第一个表空间data_tbs_01,数可以直接在创建语句后面追加"tablesp ...
- 使用 GNU Libtool 创建库
介绍 在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样.对于开发人员,如果尝试将使用动态库的软件在这些系 ...
- 转载:使用 GNU Libtool 创建库
转载自:http://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/ 介绍 在不同的系统中建立动态链接库的方法有很大的差别,这 ...
- GCC 连接器、链接标准库 gcc -l、链接手动创建库(指定目录的库 gcc -L)
1. 链接器 链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件. 在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等 ...
- 主库创建存储过程时从库显示 Error 1049
MySQL Bugs: #72682: Replication MBR halts - stored procedure from unreplicated schema MySQL Bugs: #5 ...
- mysql创建数据库指定utf 8_MySQL创建数据库时指定编码utf8mb4和添加用户
MySQL创建数据库时指定编码utf8mb4和添加用户 CREATE DATABASE `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_gene ...
- php指定编码创建,MYSQL创建数据库时指定编码
mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的 ...
最新文章
- 函数重载需要注意的点
- 为什么很多人喜欢把软件装在D盘,而不是系统盘C
- Shell printf 命令
- IIS短文件/文件夹泄露漏洞
- outlook 单独安装_民强村排烟管道安装公司
- 算法设计与分析python_Python算法设计与分析
- python在统计专业的应用_Python统计学一数据的概括性度量详解
- Win7和Ubuntu14.10双系统
- 渗透测试学习 十一、 其他注入漏洞汇总
- 【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频
- spring3 的restful API RequestMapping介绍
- c语言指针测试代码,一个关于C语言指针的测试
- pfx导入后仍然打不开加密文件_天正CAD图纸加密和解密方法
- [React Native]StatusBar的使用
- solaris 查看CPU资源占用情况!
- BF2地图下载 战地系列非官方单机地图集
- android sdk 配置出错error: unknown argument --licenses
- eclipse安卓 DDMS中打不开Sdcard文件夹的问题
- tf_Course6循环神经网络
- 1.2.1 数据库系统特点
热门文章
- Python学习笔记4—Python字典元组
- 第7部分 组策略应用
- mysql5717开发设置怎么调回来_MYSQL5.7.17设置初始密码(转)
- Kubernetes — HOST-DEVICE CNI
- C 语言编程 — const 关键字
- 两个蓝牙模块配对的方法
- 作业03:格式化输出
- 全球可持续发展标准化城市联盟首个海外会议基地落户杭州
- 2017-2018-2 20179209《网络攻防》第六周作业
- 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.47. Gawk-4.1.1...