조합 변경

ALTER 사설 토토 — 데이터 정렬 정의 변경

시놉시스

조합 변경이름버전 새로고침

사설 토토 정렬 변경이름다음으로 이름 바꾸기new_name조합 변경이름의 소유자new_owner| 현재_역할 | CURRENT_USER | SESSION_USER이름스키마 설정new_schema

설명

조합 변경콜레이션의 정의를 변경합니다.

사용하려면 사설 토토 정렬을 소유해야 합니다.조합 변경. 소유자를 변경하려면 새 소유 역할의 직접 또는 간접 구성원이어야 하며 해당 역할에는 다음이 있어야 합니다.생성데이터 정렬 스키마에 대한 권한. (이러한 제한 사항은 소유자를 변경해도 데이터 정렬을 삭제하고 다시 생성하여 수행할 수 없는 작업을 수행하지 않도록 강제합니다. 그러나 슈퍼유저는 어쨌든 모든 데이터 정렬의 소유권을 변경할 수 있습니다.)

매개변수

이름

기존 대조의 이름(선택적으로 스키마 한정).

new_name

컬레이션의 새 이름입니다.

new_owner

컬레이션의 새로운 소유자.

new_schema

사설 토토 정렬을 위한 새로운 스키마.

버전 새로고침

콜레이션 버전을 업데이트하세요. 참조참고아래.

참고

데이터 정렬 개체가 생성되면 공급자별 데이터 정렬 버전이 시스템 카탈로그에 기록됩니다. 데이터 정렬을 사용하면 기록된 버전과 비교하여 현재 버전을 확인하고 불일치가 있으면 경고가 표시됩니다. 예를 들면 다음과 같습니다.

경고: 데이터 정렬 "xx-x-icu"에 버전이 일치하지 않습니다.
DETAIL: 데이터베이스의 데이터 정렬은 버전 1.2.3.4를 사용하여 생성되었지만 운영 체제에서는 버전 2.3.4.5를 제공합니다.
힌트: 이 데이터 정렬의 영향을 받는 모든 개체를 다시 빌드하고 ALTER COLLATION pg_catalog."xx-x-icu" REFRESH VERSION을 실행하거나 올바른 라이브러리 버전으로 PostgreSQL을 빌드하세요.

데이터 정렬 정의가 변경되면 데이터베이스 시스템이 특정 정렬 순서를 가진 저장된 객체에 의존하기 때문에 색인 손상 및 기타 문제가 발생할 수 있습니다. 일반적으로 이는 피해야 하지만 운영 체제를 새로운 주요 버전으로 업그레이드하거나 다음을 사용하는 경우와 같은 합법적인 상황에서 발생할 수 있습니다.pg_upgrade최신 버전의 ICU와 연결된 서버 바이너리로 업그레이드합니다. 이런 일이 발생하면 데이터 정렬에 따른 모든 개체를 다시 작성해야 합니다. 예를 들어 다음을 사용합니다.REINDEX. 완료되면 다음 명령을 사용하여 대조 버전을 새로 고칠 수 있습니다.조합 변경 ...버전 새로 고침. 그러면 현재 데이터 정렬 버전을 기록하도록 시스템 카탈로그가 업데이트되고 경고가 사라집니다. 실제로 영향을 받은 모든 객체가 올바르게 재구축되었는지 여부는 확인하지 않습니다.

다음에서 제공하는 데이터 정렬을 사용할 때libc, 버전 정보는 GNU C 라이브러리(대부분의 Linux 시스템), FreeBSD 및 Windows를 사용하는 시스템에 기록됩니다. ICU에서 제공하는 데이터 정렬을 사용하는 경우 버전 정보는 ICU 라이브러리에서 제공되며 모든 플랫폼에서 사용할 수 있습니다.

참고

데이터 정렬을 위해 GNU C 라이브러리를 사용할 때 C 라이브러리 버전은 데이터 정렬 버전의 프록시로 사용됩니다. 많은 Linux 배포판에서는 C 라이브러리를 업그레이드할 때만 데이터 정렬 정의를 변경하지만, 유지 관리 담당자가 최신 데이터 정렬 정의를 이전 C 라이브러리 릴리스로 자유롭게 백포트할 수 있으므로 이 접근 방식은 불완전합니다.

데이터 정렬을 위해 Windows를 사용하는 경우 버전 정보는 다음과 같은 BCP 47 언어 태그로 정의된 데이터 정렬에만 사용할 수 있습니다.en-US.

사설 토토베이스 기본 대조의 경우 유사한 명령이 있습니다.데이터베이스 변경 ... 대조 버전 새로고침.

다음 쿼리는 새로 고쳐야 하는 현재 데이터베이스의 모든 데이터 정렬과 이에 의존하는 개체를 식별하는 데 사용할 수 있습니다.

SELECT pg_describe_object(refclassid, refobjid, refobjsubid) AS "조합",
       pg_describe_object(classid, objid, objsubid) AS "객체"
  pg_dependent d에서 JOIN pg_사설 토토 c
       ON refclassid = 'pg_사설 토토'::regclass AND refobjid = c.oid
  WHERE c.collversion < pg_사설 토토_actual_version(c.oid)
  1, 2로 주문;

조합 이름을 바꾸려면de_DE독일어:

ALTER COLLATION "de_DE" 이름을 독일어로 변경;

사설 토토 정렬 소유자를 변경하려면en_US:

컬렉션 "en_US" 소유자를 joe로 변경;

호환성

없습니다컬렉션 변경SQL 표준의 문입니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.