이 문서는 지원되지 않는 버전의 토토 꽁 머니을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 23.2. 메이저 토토 사이트 Support버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

22.2. Collation Support

토토 꽁 머니 기능을 통해 정렬 순서를 지정할 수 있습니다 문자 분류 동작은 컬럼 당 데이터의 또는 심지어 심지어 데이터의 데이터의 행동 동작입니다 수용자. 이것은의 제한을 완화합니다.LC_COLLATEandLC_CTYPE생성 후에 데이터베이스 설정을 변경할 수 없습니다.

22.2.1. 개념

개념적으로, 충돌 가능한 데이터 유형의 모든 표현에는 대조. (내장 된 Collatable 데이터 유형은입니다.텍스트, Varcharchar. 사용자 정의 기본 유형도 표시 할 수 있습니다 Collatable, 물론 Collatable Data Type의 도메인은 다음과 같습니다. Collatable.) 표현식이 열 참조 인 경우 Collation 표현식은 열의 정의 된 충돌입니다. 만약 표현은 일정하고, 콜라이트는 기본 Collation입니다. 상수의 데이터 유형. 더 복잡한 통합 표현은 아래 설명.

표현의 협업은가 될 수 있습니다."기본"토토 꽁 머니, 이는 로케일 설정을 의미합니다 데이터베이스에 대해 정의되었습니다. 표현의 경우에도 가능합니다 불확실한 협력. 그러한 경우, 주문 운영 그리고 콜라이트를 알아야하는 다른 작업은 실패 할 것입니다.

데이터베이스 시스템이 주문 또는 문자 분류는 입력의 충돌을 사용합니다 표현. 예를 들어와 같은 이런 일이 발생합니다.주문 by조항 및 기능 또는 연산자 호출 처럼<. 신청을위한 콜레이션주문 by절은 단순히의 공동화입니다 정렬 키. 함수 또는 연산자를 신청하는 콜레이션 호출은 아래에 설명 된대로 인수에서 파생됩니다. 게다가 비교 연산자에게는 콜라이트가 고려됩니다 하급 문자와 대문자로 변환하는 기능 등 처럼낮은, 어퍼Initcap; 패턴 일치 연산자로; 그리고 byto_char및 관련 기능.

함수 또는 연산자 호출의 경우, 도출 된 토토 꽁 머니 인수 콜라주를 검토함으로써 실행 시간에 사용됩니다. 지정된 작업을 수행합니다. 함수의 결과 인 경우 또는 운영자 호출은 Collatable Data Type이며 토토 꽁 머니은 구문 분석 시간에도 함수의 정의 된 협업으로 사용되거나 연산자 표현, 주변 표현이있는 경우 콜라이트에 대한 지식이 필요합니다.

the토토 꽁 머니 Devation의 표현은 암시 적이거나 명시적일 수 있습니다. 이 차이는 영향을 미칩니다 여러 개의 다른 콜라주를 할 때 콜라주가 결합되는 방법 표현으로 나타납니다. 명시 적 콜레이션 파생이 발생합니다 ACollate조항이 사용됩니다. 다른 모든 것 Collation 파생물은 암시 적입니다. 여러 콜라주가 필요할 때 예를 들어 함수 호출에서 다음 규칙을 결합하려면 사용됩니다 :

  1. 입력 표현식이 명시 적 콜레이션 도출이있는 경우, 그런 다음 입력 표현식 중에서 모두 명시 적으로 도출되었습니다 동일해야합니다. 그렇지 않으면 오류가 발생합니다. 명시 적으로 파생 된 협업이 존재합니다. 즉, Collation의 결과입니다. 콤비네이션.

  2. 그렇지 않으면 모든 입력 표현식은 동일한 암시 적이어야합니다 토토 꽁 머니 파생 또는 기본 토토 꽁 머니. 비 디폴트가있는 경우 토토 꽁 머니이 존재합니다. 그것은 토토 꽁 머니의 결과입니다. 콤비네이션. 그렇지 않으면 결과는 기본 토토 꽁 머니입니다.

  3. 비다 기본 암시 적 콜라주가 상충되는 경우 입력 표현식, 그러면 조합은 불확실한 협력. 그렇지 않은 한 오류 조건이 아닙니다 호출되는 특정 기능에는에 대한 지식이 필요합니다 토토 꽁 머니 적용해야합니다. 그렇다면 오류가 발생합니다 실행 시간.

예를 들어이 표 정의를 고려하십시오 :

테이블 생성 테스트 1 (
    텍스트는 "de_de",
    b 텍스트가 "es_es"를 수집하고
    ...
);

in

test1에서 a < 'foo'를 선택하십시오.

the<비교가 수행됩니다 에 따르면de_de규칙 표현식은 암시 적으로 파생 된 협업을 결합합니다 기본 콜레이션. 그러나에서

a <( 'foo'collate "fr_fr")에서 test1; 선택

비교는를 사용하여 수행됩니다.FR_FR규칙 암시 적. 또한 주어진

test1에서 <b를 선택하십시오.

파서는 이후에 적용 할 콜라이트를 결정할 수 없습니다aB열에는 암시 적 콜라이트가 상충됩니다. 이후로<운영자는 어떤 Collation에 어떤 Collation을 알아야합니다 사용하면 오류가 발생합니다. 오류는 다음과 같이 해결할 수 있습니다 명시 적 Collation 지정자를 입력 중 하나에 첨부합니다 따라서 표현 :

test1에서 "de_de"를 <b collate " 선택합니다.

또는 동등하게

a Collate "de_de"<b from test1; 선택

반면에 구조적으로 유사한 경우

a ||를 선택하십시오 b test1;

이기 때문에 오류가 발생하지 않습니다.||운영자는 토토 꽁 머니s : ITS 결과는 토토 꽁 머니에 관계없이 동일합니다.

함수 또는 연산자의 결합에 할당 된 콜레이션 입력 표현식은 또한 함수에 적용되는 것으로 간주되거나 기능 또는 연산자가 결과를 전달하는 경우 운영자의 결과 충돌 가능한 데이터 유형. 그래서에서

a ||에서 test1 주문 * 선택 * 'foo';

주문은에 따라 수행됩니다.de_de규칙. 하지만이 질문 :

선택 *에서 test1 주문에서 || 비;

오류가 발생합니다.||운영자는 토토 꽁 머니을 알 필요가 없습니다.주문 by조항. 이전과 마찬가지로 명시 적 Collation 지정자로 갈등을 해결할 수 있습니다.

a ||로 test1 주문 * 선택 * b "fr_fr"; Collate

22.2.2. 관리 토토 꽁 머니s

토토 꽁 머니은 SQL 이름을 운영 체제 지역. 특히, 그것은 조합에 매핑됩니다 의LC_COLLATEandLC_CTYPE. (이름에서 알 수 있듯이 메인 토토 꽁 머니의 목적은 설정하는 것입니다lc_collate, 정렬 순서를 제어합니다. 그러나 그것은입니다 실제로는 거의 필요하지 않습니다LC_CTYPELC_COLLATE이를 수집하는 것이 더 편리합니다 설정을위한 다른 인프라를 만드는 것보다 하나의 개념하에LC_CTYPE표현 당) 또한 콜라이트 캐릭터 세트 인코딩에 묶여 있습니다 (참조섹션 22.3). 같은 콜라이트 이름은 5 월입니다 다른 인코딩에 대해 존재합니다.

모든 플랫폼에서 콜라이트라는 콜라이트기본값, Cposix사용 가능합니다. 추가 콜로레이션이있을 수 있습니다 운영 체제 지원에 따라 사용 가능합니다. 그만큼기본값토토 꽁 머니을 선택합니다LC_COLLATEandLC_CTYPE데이터베이스 생성 시간에 지정된 값. 그만큼Candposix토토 꽁 머니s 둘 다 지정"전통적인 C"행동, in ASCII 편지 만"a"through"Z"문자로 취급되며 분류는입니다 문자 코드 바이트 값에 의해 엄격하게 완료되었습니다.

운영 체제가 다중 사용을 지원하는 경우 단일 프로그램 내의 로케일 (Newlocale및 관련 함수), 그런 다음 a 데이터베이스 클러스터가 초기화되어initdb시스템 카탈로그를 채 웁니다PG_토토 꽁 머니운영에서 찾은 모든 지역을 기반으로 한 콜라이트와 함께 당시 시스템. 예를 들어, 운영 체제가 제공 할 수 있습니다 로케일이라는 로케일de_de.utf8. initdb|de_de.utf8인코딩 용UTF8두 가지 모두lc_collateandLC_CTYPE세트 에게de_de.utf8. 또한 a 와의 콜레이션.utf8태그 제거 이름. 그래서 당신은 또한 이름으로 콜레이션을 사용할 수 있습니다de_de, 글을 덜 번거롭게합니다 그리고 이름을 인코딩 의존적으로 덜 만듭니다. 주목하십시오. 그럼에도 불구하고, 초기 콜레이션 이름 세트는 다음과 같습니다 플랫폼 의존적.

콜로레이션이 필요한 경우에 대한 값이 다른 경우LC_COLLATEandLC_CTYPEPostgreSQL : 문서 : 9.3 : 배트맨 토토명령. 그 명령은 또한 사용할 수있는 기존 토토 꽁 머니 응용 프로그램의 운영 시스템 독립적 인 콜레이션 이름.

특정 데이터베이스 내에서는이를 사용하는 콜로레이션 만 있습니다 데이터베이스의 인코딩이 관심이 있습니다. 의 다른 항목PG_토토 꽁 머니무시됩니다. 따라서 제거 된 협업 와 같은 이름de_de고려할 수 있습니다 고유하지 않더라도 주어진 데이터베이스 내에서 고유 전 세계. 스트리핑 된 콜라이트 이름을 사용하는 것이 권장됩니다 당신이 결정하면 변경해야 할 것이 하나 더 줄어 듭니다. 다른 데이터베이스 인코딩으로 변경합니다. 그러나기본값, Cposix토토 꽁 머니s를 사용할 수 있습니다 데이터베이스 인코딩.

토토 꽁 머니뚜렷한 것으로 간주합니다 동일 할 때에도 호환되지 않는 토토 꽁 머니 개체 속성. 예를 들어,

a collate "c"<b collate "posix"에서 test1; 선택

에도 불구하고 오류가 발생합니다.CandPOSIX콜라이트는 동일합니다 행동. 믹싱 스트리핑 및 스트리핑되지 않은 콜라이트 이름은 다음과 같습니다 따라서 권장되지 않습니다.