2017-12-31 318 views
0

지금은 pgAdmin4 GUI에서 새 DB를 만들 때 Encoding : UTF8을 선택할 수 있습니다.PostgreSQL에서 utf8 데이터 정렬 설치

그러나 데이터 정렬 또는 문자 유형으로 utf8_general_ci을 선택하는 옵션은 없습니다. 내가 할 때 select * from pg_collation;utf8_general_ci과 관련된 모든 데이터 정렬을 참조하십시오.

mySQL 백그라운드에서 오는 것은 혼란 스럽습니다. PostgreSQL 10 또는 Windows10에 utf8과 같은 (예 : utf8_general_ci, utf8_unicode_ci) 데이터 정렬을 설치해야합니까?

PostgreSQL에 mySQL collation utf8_general_ci과 동등한 제품이 필요합니다.

답변

1

utf8는 인코딩입니다 감사 (바이트의 일련의 유니 코드 문자를 표현하는 방법), (문자 직전 간다)하지 않는 정렬.

나는 utf8_general_ci (이상 현대 utf8_unicode_ci)에 대한 포스트 그레스 10 정렬 상응 und-x-icu라고 생각한다 - 이것이 ICU 라이브러리에서 제공 정의되지 않은 데이터 정렬 (실제 세계 언어에 대해 정의되지 않음)입니다. 이 데이터 정렬은 대부분의 언어에서 상당히 합리적 인 문자를 정렬합니다.

ICU 지원은 PostgreSQL 10에 추가 된 새로운 기능입니다. 따라서이 데이터 정렬은 이전 버전의 PostgreSQL에서는 사용할 수 없으며 컴파일 중에는 사용할 수 없습니다. 그 전에는 Postgres가 운영 체제에서 제공된 데이터 정렬 지원을 사용하고 있었는데, 운영 체제마다 다릅니다.

+0

새해 복 많이 받으세요. 네, 인코딩 - 데이터 정렬의 차이점을 알고 있습니다. 그러나 mySQL 용어로 생각하면, 나는 utf8과 같은 조합 (예 :'utf8_general_ci' 또는'utf8_unicode_ci')을 의미했습니다. 나는 OP를 더 잘 쓰도록 편집했다. 어쨌든'und-x-icu'가 정의되지 않은 데이터 정렬 일 경우, C 데이터 정렬을 사용할 수도 있습니다. 이것은 또한 정의되지 않은 데이터 정렬입니다. 맞습니까? 고맙습니다. – slevin

+1

몇 가지 테스트를했는데 현재 버전 (10.1)에서 ICU 지원이 내가 생각한만큼 완벽하지 않은 것으로 보입니다. 'und-x-icu' 로케일로 데이터베이스를 만드는 것은 불가능한 것처럼 보입니다 - 일부 컬럼에 대해서만 명시 적으로 설정하십시오. 따라서 개선되기 전까지는'create database datename template = 'template0'encoding = 'UTF8'lc_ctype = 'C'lc_collate = 'C'또는 다른 OS 제공 로케일을 사용해야 할 것입니다. – Tometzky

+0

안녕하세요. PostgreSQL 10.1은 Visual C++로 컴파일되어 win10 랩톱에서 64 비트를 빌드합니다. 난 그냥' OWNER = 포스트 그레스 TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = '싶게-X-ICU' LC_CTYPE = '싶게-X-ICU' TABLESPACE = pg_default 연결 제한 함께 DATABASE 테스트 을 창조 하셨 는가 = -1; 그리고 그것은 효과가 있었다. 또한 pgAdmin4 GUI에서 속성을 볼 수 있습니다. – slevin