토토 꽁 머니 9.3.25 문서 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.3 : 토토 커뮤니티 지원 | 스포츠 토토 결과 : 문서 : 9.3 : 현지화 | 22 장. 현지화 | PostgreSQL : 문서 : 9.3 : 문자 세트 토토 베이 |
토토 꽁 머니 기능을 통해 정렬 순서를 지정할 수 있습니다 문자 분류 동작은 컬럼 당 데이터의 또는 심지어 심지어 데이터의 데이터의 행동 동작입니다 수용자. 이것은의 제한을 완화합니다.LC_COLLATEandLC_CTYPE생성 후에 데이터베이스 설정을 변경할 수 없습니다.
개념적으로, 충돌 가능한 데이터 유형의 모든 표현에는 대조. (내장 된 Collatable 데이터 유형은입니다.텍스트, Varchar및char. 사용자 정의 기본 유형도 표시 할 수 있습니다 Collatable, 물론 Collatable Data Type의 도메인은 다음과 같습니다. Collatable.) 표현식이 열 참조 인 경우 Collation 표현식은 열의 정의 된 충돌입니다. 만약 표현은 일정하고, 콜라이트는 기본 Collation입니다. 상수의 데이터 유형. 더 복잡한 통합 표현은 아래 설명.
표현의 협업은가 될 수 있습니다."기본"토토 꽁 머니, 이는 로케일 설정을 의미합니다 데이터베이스에 대해 정의되었습니다. 표현의 경우에도 가능합니다 불확실한 협력. 그러한 경우, 주문 운영 그리고 콜라이트를 알아야하는 다른 작업은 실패 할 것입니다.
데이터베이스 시스템이 주문 또는
문자 분류는 입력의 충돌을 사용합니다
표현. 예를 들어와 같은 이런 일이 발생합니다.주문 by조항 및 기능 또는 연산자 호출
처럼<. 신청을위한 콜레이션주문 by절은 단순히의 공동화입니다
정렬 키. 함수 또는 연산자를 신청하는 콜레이션
호출은 아래에 설명 된대로 인수에서 파생됩니다. 게다가
비교 연산자에게는 콜라이트가 고려됩니다
하급 문자와 대문자로 변환하는 기능 등
처럼낮은
, 어퍼
및Initcap
;
패턴 일치 연산자로; 그리고 byto_char
및 관련 기능.
함수 또는 연산자 호출의 경우, 도출 된 토토 꽁 머니 인수 콜라주를 검토함으로써 실행 시간에 사용됩니다. 지정된 작업을 수행합니다. 함수의 결과 인 경우 또는 운영자 호출은 Collatable Data Type이며 토토 꽁 머니은 구문 분석 시간에도 함수의 정의 된 협업으로 사용되거나 연산자 표현, 주변 표현이있는 경우 콜라이트에 대한 지식이 필요합니다.
the토토 꽁 머니 Devation의 표현은 암시 적이거나 명시적일 수 있습니다. 이 차이는 영향을 미칩니다 여러 개의 다른 콜라주를 할 때 콜라주가 결합되는 방법 표현으로 나타납니다. 명시 적 콜레이션 파생이 발생합니다 ACollate조항이 사용됩니다. 다른 모든 것 Collation 파생물은 암시 적입니다. 여러 콜라주가 필요할 때 예를 들어 함수 호출에서 다음 규칙을 결합하려면 사용됩니다 :
입력 표현식이 명시 적 콜레이션 도출이있는 경우, 그런 다음 입력 표현식 중에서 모두 명시 적으로 도출되었습니다 동일해야합니다. 그렇지 않으면 오류가 발생합니다. 명시 적으로 파생 된 협업이 존재합니다. 즉, Collation의 결과입니다. 콤비네이션.
그렇지 않으면 모든 입력 표현식은 동일한 암시 적이어야합니다 토토 꽁 머니 파생 또는 기본 토토 꽁 머니. 비 디폴트가있는 경우 토토 꽁 머니이 존재합니다. 그것은 토토 꽁 머니의 결과입니다. 콤비네이션. 그렇지 않으면 결과는 기본 토토 꽁 머니입니다.
비다 기본 암시 적 콜라주가 상충되는 경우 입력 표현식, 그러면 조합은 불확실한 협력. 그렇지 않은 한 오류 조건이 아닙니다 호출되는 특정 기능에는에 대한 지식이 필요합니다 토토 꽁 머니 적용해야합니다. 그렇다면 오류가 발생합니다 실행 시간.
예를 들어이 표 정의를 고려하십시오 :
테이블 생성 테스트 1 ( 텍스트는 "de_de", b 텍스트가 "es_es"를 수집하고 ... );
in
test1에서 a < 'foo'를 선택하십시오.
the<비교가 수행됩니다 에 따르면de_de규칙 표현식은 암시 적으로 파생 된 협업을 결합합니다 기본 콜레이션. 그러나에서
a <( 'foo'collate "fr_fr")에서 test1; 선택
비교는를 사용하여 수행됩니다.FR_FR규칙 암시 적. 또한 주어진
test1에서 <b를 선택하십시오.
파서는 이후에 적용 할 콜라이트를 결정할 수 없습니다a및B열에는 암시 적 콜라이트가 상충됩니다. 이후로<운영자는 어떤 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
토토 꽁 머니은 SQL 이름을 운영 체제 지역. 특히, 그것은 조합에 매핑됩니다 의LC_COLLATEandLC_CTYPE. (이름에서 알 수 있듯이 메인 토토 꽁 머니의 목적은 설정하는 것입니다lc_collate, 정렬 순서를 제어합니다. 그러나 그것은입니다 실제로는 거의 필요하지 않습니다LC_CTYPELC_COLLATE이를 수집하는 것이 더 편리합니다 설정을위한 다른 인프라를 만드는 것보다 하나의 개념하에LC_CTYPE표현 당) 또한 콜라이트 캐릭터 세트 인코딩에 묶여 있습니다 (참조섹션 22.3). 같은 콜라이트 이름은 5 월입니다 다른 인코딩에 대해 존재합니다.
모든 플랫폼에서 콜라이트라는 콜라이트기본값, C및posix사용 가능합니다. 추가 콜로레이션이있을 수 있습니다 운영 체제 지원에 따라 사용 가능합니다. 그만큼기본값토토 꽁 머니을 선택합니다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고려할 수 있습니다 고유하지 않더라도 주어진 데이터베이스 내에서 고유 전 세계. 스트리핑 된 콜라이트 이름을 사용하는 것이 권장됩니다 당신이 결정하면 변경해야 할 것이 하나 더 줄어 듭니다. 다른 데이터베이스 인코딩으로 변경합니다. 그러나기본값, C및posix토토 꽁 머니s를 사용할 수 있습니다 데이터베이스 인코딩.
토토 꽁 머니뚜렷한 것으로 간주합니다 동일 할 때에도 호환되지 않는 토토 꽁 머니 개체 속성. 예를 들어,
a collate "c"<b collate "posix"에서 test1; 선택
에도 불구하고 오류가 발생합니다.CandPOSIX콜라이트는 동일합니다 행동. 믹싱 스트리핑 및 스트리핑되지 않은 콜라이트 이름은 다음과 같습니다 따라서 권장되지 않습니다.