Alter 토토 베이

Collation Alter 토토 베이 - Collation의 정의 변경

시놉시스

Alter 토토 베이이름새로 고침 버전

Alter 토토 베이이름이름 바꾸기new_nameAlter 토토 베이이름소유자에게New_owner| current_role | current_user | Session_USER이름스키마 설정new_schema

설명

Alter 토토 베이토토 베이의 정의를 변경합니다.

사용하려면 토토 베이을 소유해야합니다Alter 토토 베이. 소유자를 변경하려면역할 설정새로운 소유 역할에 대한, 그 역할은Create토토 베이의 스키마의 특권. (이러한 제한은 소유자를 변경하는 것이 콜레이션을 삭제하고 재현하여 할 수없는 일을하지 않는다는 것을 강요합니다. 그러나 슈퍼업자는 어쨌든 모든 콜레이션의 소유권을 바꿀 수 있습니다.).

매개 변수

이름

기존 콜레이션의 이름 (선택적으로 스키마 자격).

new_name

Collation의 새 이름.

New_owner

토토 베이의 새로운 소유자.

new_schema

토토 베이의 새로운 스키마.

새로 고침 버전

토토 베이의 버전을 업데이트하십시오. 보다노트아래.

노트

토토 베이 객체가 생성되면 시스템 카탈로그에 공급자 별 버전이 기록됩니다. 토토 베이을 사용하면 현재 버전이 녹음 된 버전에 대해 확인되며 불일치가있을 때 경고가 발행됩니다.

경고 : Collation "XX-X-ICU"에는 버전 불일치가 있습니다
세부 사항 : 데이터베이스의 Collation은 버전 1.2.3.4를 사용하여 작성되었지만 운영 체제는 버전 2.3.4.5를 제공합니다.
힌트 :이 Collation의 영향을받는 모든 객체를 재구성하고 Alter 토토 베이 PG_CATALOG를 실행하십시오. "XX-X-ICU"새로 고침 버전 또는 올바른 라이브러리 버전으로 PostgreSQL을 구축하십시오..

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

토토 베이s에 의해 제공된 콜라이트를 사용할 때LIBC, 버전 정보는 GNU C 라이브러리 (대부분의 Linux Systems), FreeBSD 및 Windows를 사용하여 시스템에 기록됩니다. ICU에서 제공하는 콜라이트를 사용하는 경우 버전 정보는 ICU 라이브러리에서 제공되며 모든 플랫폼에서 제공됩니다.

note

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

토토 베이s에 Windows를 사용할 때 버전 정보는 BCP 47 언어 태그로 정의 된 콜로레이션에만 사용할 수 있습니다en-us.

Database Default 토토 베이의 경우 유사한 명령이 있습니다Alter Database ... 토토 베이 버전 새로 고침.

다음 쿼리를 사용하여 새로 고침 해야하는 현재 데이터베이스의 모든 콜라이트와 그에 의존하는 객체를 식별 할 수 있습니다.

"토토 베이"으로 PG_DESCRIBE_OBJECT (RefClassId, refoBjid, refobjsubid)를 선택하십시오.
       pg_describe_object (classid, objid, objsubid)로 "object"
  pg_depend d에서 pg_토토 베이 c
       refclassid = 'pg_토토 베이':: regclass and refobjid = c.oid
  여기서 c.collversion < pg_토토 베이_actual_version (c.oid)
  1, 2로 주문하십시오.

예제

Collation의 이름을 바꾸려면de_deto독일어:

Alter 토토 베이 "de_de"독일어로 이름 바꾸기;

토토 베이의 소유자를 변경하려면en_ustoJoe:

Alter 토토 베이 "en_us"소유자에게 Joe;

호환성

There is noAlter 토토 베이SQL 표준의 명령문.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면