본문 바로가기
DataBase/PostgreSQL

[PostgreSQL] collate

by 김뚱 2019. 6. 11.

LC_COLLATE

 

이는 매우 중요한 것으로 다음과 같은 것에 영향을 미친다.

  1. 대소문자를 구분하는 기능.
  2. 문자열 정렬
  3. ‘like’ 문에서 인덱스를 사용여부 결정

이는 데이터베이스를 생성할때에도 지정할 수가 있는데, 지정하는 방법은 locale 과 같이 language_territory.codeset 형식이지만 codeset 은 생략하는 경우가 있다. 다음과 같은 명령어로 확인 가능하다.

SHOW lc_collate;

위의 명령어를 검색하면 Data Output에서 "Korean_Korea.949" 로 나온다.

 

문제는 이 LC_COLLATE 는 initdb 시에 한번 결정이 되면 바꿀 수 없고 하지만, Template 을 1번이 아닌 0번으로 할 경우에는 가능하다. Template1 은 initdb 때 생성되는 일종의 Master  DB라 보면되고 모든 데이터베이스는 이 Template1 을 기반으로 생성되어진다.

 

 

Sample

id 타입 COLLATE pg_catalog."default"

이는 열에 대해 기본 lc_collate를 사용하고 있음을 의미한다.

 

 

Reference 

https://www.postgresql.org/docs/current/collation.html

 

PostgreSQL: Documentation: 11: 23.2. Collation Support

The collation feature allows specifying the sort order and character classification behavior of data per-column, or even per-operation. This alleviates the restriction that the LC_COLLATE and LC_CTYPE settings of a database cannot be changed after its crea

www.postgresql.org

http://linux.systemv.pe.kr/postgresql-%EA%B3%BC-%EB%AC%B8%EC%9E%90%EC%85%8B/#LC_COLLATE

 

PostgreSQL 과 문자셋 - Voyager of Linux

PostgreSQL 도 문자셋에 관해서 많은 옵션들을 제공한다. 그런데, 대부분은 이에 대해서 잘 모르는 듯해서 여기서 정리해 본다. PostgreSQL 에서 문자셋 지정을 처음 하는 부분은 바로 설치를 마친후에 initdb 명령어를 사용하면서 부터다 대충 다음과 같이 사용한다

linux.systemv.pe.kr

 

728x90
반응형

댓글