zoukankan      html  css  js  c++  java
  • PostgreSQL中的collations

    与Oracle相比,PostgreSQL对collation的支持依赖于操作系统。

     

    以下是基于Centos7.5的测试结果

    $ env | grep LC
    $ env | grep LANG
    LANG=en_US.UTF-8
    

      

    使用initdb初始化集群的时候,就会使用这些操作系统的配置。

    postgres=# l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (4 rows)
    
    postgres=# 
    

      

    在新建数据库的时候,可以指定数据库的默认的callation:

    postgres=# create database abce with LC_COLLATE = "en_US.UTF-8";
    CREATE DATABASE
    postgres=# create database abce2 with LC_COLLATE = "de_DE.UTF-8";
    ERROR:  new collation (de_DE.UTF-8) is incompatible with the collation of the template database (en_US.UTF-8)
    HINT:  Use the same collation as in the template database, or use template0 as template.
    postgres=# 
    

    但是,指定的collation必须是与template库兼容的。或者,使用template0作为模板。

     

    如果想看看操作系统支持哪些collations,可以执行:

    $ localectl list-locales
    

      

    也可以登录postgres后查看:

    postgres=# select * from pg_collation ;
    

      

  • 相关阅读:
    C语言指针和数组
    C语言malloc、calloc函数
    33、二叉树的后序遍历序列
    进程、线程、协程
    8、字符串转整数
    51、数组中的逆序对
    49、丑数
    19、正则表达式匹配
    32、从上到下打印二叉树
    leetcode5:最长回文子串
  • 原文地址:https://www.cnblogs.com/abclife/p/13924350.html
Copyright © 2011-2022 走看看