이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 외국 무지개 토토 변경버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

외부 토토 캔 변경

ALTER FOREIGN TABLE — 외부 토토 캔의 정의 변경

시놉시스

외부 토토 캔 변경 [ 존재하는 경우 ] [ 전용 ]이름 [ * ]
    액션[, ... ]
ALTER FOREIGN TABLE [ 존재하는 경우 ] [ 전용 ]이름[ * ]
    [ 열 ] 이름 바꾸기열_이름받는 사람new_column_name외부 토토 캔 변경 [ 존재하는 경우 ]이름다음으로 이름 바꾸기new_name외부 토토 캔 변경 [ 존재하는 경우 ]이름스키마 설정new_schema

어디에서액션다음 중 하나입니다:추가 [ 열 ]컬럼_이름 데이터_유형[ 수집조합 ] [ column_constraint[ ... ] ]
    DROP [ 열 ] [ 존재하는 경우 ]컬럼_이름[ 제한 | 캐스케이드 ]
    변경 [ 열 ]컬럼_이름[ 데이터 설정 ] 유형데이터_유형[ 수집조합]
    변경 [ 열 ]컬럼_이름기본값으로 설정표현변경 [ 열 ]컬럼_이름기본값 삭제
    변경 [ 열 ]열_이름설정 | 삭제  NULL이 아님
    변경 [ 열 ]컬럼_이름통계 설정정수변경 [ 열 ]컬럼_이름설정(속성_옵션 = [, ... ] )
    변경 [ 열 ]열_이름재설정(속성_옵션[, ... ] )
    변경 [ 열 ]열_이름저장소 설정  일반 | 외부 | 확장 | 메인 
    변경 [ 열 ]컬럼_이름옵션([ 추가 | 설정 | 삭제 ]옵션 [''] [, ... ])
    추가table_constraint[ 유효하지 않음 ]
    제약조건 검증제약_이름제약조건 삭제 [ 존재하는 경우 ]제약_이름[ 제한 | 캐스케이드 ]
    트리거 비활성화 [trigger_name| 전체 | 사용자 ]
    트리거 활성화 [trigger_name| 전체 | 사용자 ]
    복제본 트리거 활성화trigger_name항상 트리거 활성화trigger_nameOIDS로 설정
    OIDS 없이 설정
    상속parent_table상속 없음parent_table소유자:new_owner| CURRENT_USER | SESSION_USER 
    옵션([ 추가 | 설정 | 삭제 ]옵션 [''] [, ... ])

설명

외부 토토 캔 변경기존 외부 토토 캔의 정의를 변경합니다. 여러 가지 하위 양식이 있습니다.

열 추가

이 양식은 다음과 동일한 구문을 사용하여 외부 테이블에 새 열을 추가합니다.외부 토토 캔 생성. 일반 토토 캔에 열을 추가하는 경우와 달리 기본 저장소에는 아무 일도 일어나지 않습니다. 이 작업은 이제 외부 토토 캔을 통해 일부 새 열에 액세스할 수 있다고 선언할 뿐입니다.

열 삭제 [ 존재하는 경우 ]

이 양식은 외부 토토 캔에서 열을 삭제합니다. 당신은 말해야 할 것입니다캐스케이드토토 캔 외부의 항목이 열에 따라 달라지는 경우; 예를 들어, 조회수. 만일존재하는 경우이 지정되었지만 열이 존재하지 않으면 오류가 발생하지 않습니다. 이 경우 대신 통지가 발행됩니다.

데이터 유형 설정

이 양식은 외부 토토 캔의 열 유형을 변경합니다. 다시 말하지만, 이는 기본 저장소에 영향을 미치지 않습니다. 이 작업은 단순히 해당 유형을 변경합니다.PostgreSQL열에 있다고 믿습니다.

SET/기본값 삭제

이 양식은 열의 기본값을 설정하거나 제거합니다. 기본값은 이후에만 적용됩니다.삽입또는업데이트명령; 이미 토토 캔에 있는 행이 변경되지는 않습니다.

SET/드롭은 NULL이 아님

열을 null 값을 허용하거나 허용하지 않는 것으로 표시합니다.

통계 설정

이 양식은 이후에 대한 열별 통계 수집 목표를 설정합니다.분석작업. 유사한 형태를 참조하십시오.토토 캔 변경자세한 내용은.

설정(속성_옵션 = [, ... ] )
재설정(속성_옵션 [, ... ] )

이 양식은 속성별 옵션을 설정하거나 재설정합니다. 유사한 형태를 참조하십시오.토토 캔 변경자세한 내용은.

저장소 설정

이 양식은 열의 저장 모드를 설정합니다. 유사한 형태를 참조하십시오.토토 캔 변경자세한 내용을 확인하세요. 토토 캔의 외부 데이터 래퍼가 주의를 기울이지 않는 한 스토리지 모드는 아무런 영향을 미치지 않습니다.

추가table_constraint[ 유효하지 않음 ]

이 양식은 다음과 동일한 구문을 사용하여 외부 테이블에 새로운 제약 조건을 추가합니다.외부 토토 캔 생성. 현재만확인제약조건이 지원됩니다.

일반 테이블에 제약 조건을 추가하는 경우와 달리 제약 조건이 올바른지 확인하기 위해 아무 작업도 수행되지 않습니다. 오히려 이 작업은 단순히 외부 테이블의 모든 행에 대해 일부 새로운 조건이 유지되어야 한다고 선언합니다. (다음 토론 참조외부 토토 캔 생성.) 제약조건이 표시된 경우유효하지 않음, 보유하는 것으로 간주되지 않으며 향후 사용을 위해 기록됩니다.

제약조건 확인

이 양식은 이전에 다음과 같이 표시된 제약 조건을 유효한 것으로 표시합니다.유효하지 않음. 제약조건을 확인하기 위한 조치는 취하지 않지만 향후 쿼리에서는 제약조건이 유지되는 것으로 가정합니다.

제약조건 삭제 [ 존재하는 경우 ]

이 양식은 외부 토토 캔에 지정된 제약 조건을 삭제합니다. 만일존재하는 경우이 지정되었지만 제약 조건이 존재하지 않으면 오류가 발생하지 않습니다. 이 경우 대신 통지가 발행됩니다.

비활성화/[복제본 활성화 | 항상 ] 트리거

이 양식은 외부 토토 캔에 속하는 트리거의 실행을 구성합니다. 유사한 형태를 참조하십시오.토토 캔 변경자세한 내용은.

OIDS로 설정

이 양식은 다음을 추가합니다.oid시스템 열을 테이블에 추가(참조PostgreSQL : 문서 : 10 : 5.4. 토토 캔 열). 테이블에 이미 OID가 있으면 아무 작업도 수행하지 않습니다. 테이블의 외부 데이터 래퍼가 OID를 지원하지 않는 한 이 열은 단순히 0으로 읽혀집니다.

이것은 다음과 동일하지 않습니다.열 oid oid 추가; 이름이 지정된 일반 열을 추가합니다.oid, 시스템 열이 아닙니다.

OIDS 없이 설정

이 양식은 다음을 제거합니다.oid테이블의 시스템 열입니다. 이는 정확히 다음과 같습니다.드롭 컬럼 oid RESTRICT, 단, 이미 없는 경우 불평하지 않습니다.oid열.

상속parent_table

이 양식은 대상 외부 테이블을 지정된 상위 테이블의 새 하위로 추가합니다. 유사한 형태를 참조하십시오.토토 캔 변경자세한 내용은.

상속 없음parent_table

이 양식은 지정된 상위 토토 캔의 하위 목록에서 대상 외부 토토 캔을 제거합니다.

소유자

이 양식은 외부 테이블의 소유자를 지정된 사용자로 변경합니다.

옵션([ 추가 | 설정 | 삭제 ]옵션 [''] [, ... ] )

외부 테이블 또는 해당 열 중 하나에 대한 옵션을 변경합니다.추가, SET드롭수행할 작업을 지정하세요.추가작업이 명시적으로 지정되지 않은 경우 가정됩니다. 중복된 옵션 이름은 허용되지 않습니다. 단, 테이블 옵션과 열 옵션의 이름이 같아도 괜찮습니다. 옵션 이름과 값은 외부 데이터 래퍼 라이브러리를 사용하여 유효성도 검사됩니다.

RENAME

RENAME양식은 외부 테이블의 이름 또는 외부 테이블의 개별 열 이름을 변경합니다.

스키마 설정

이 양식은 외부 토토 캔을 다른 스키마로 이동합니다.

다음을 제외한 모든 작업RENAME그리고스키마 설정병렬로 적용하기 위해 여러 변경 사항 목록으로 결합할 수 있습니다. 예를 들어 단일 명령으로 여러 열을 추가하거나 여러 열의 유형을 변경할 수 있습니다.

명령이 다음과 같이 작성된 경우존재하는 경우 외부 토토 캔 변경 ...그리고 외부 테이블이 존재하지 않으며 오류가 발생하지 않습니다. 이 경우 통지가 발행됩니다.

사용하려면 토토 캔을 소유해야 합니다.외부 토토 캔 변경. 외부 테이블의 스키마를 변경하려면 다음도 필요합니다.생성새 스키마에 대한 권한. 소유자를 변경하려면 새 소유 역할의 직접 또는 간접 구성원이어야 하며 해당 역할에는 다음이 있어야 합니다.만들기테이블 스키마에 대한 권한입니다. (이러한 제한 사항은 소유자를 변경해도 테이블을 삭제하고 다시 생성하여 수행할 수 없는 작업을 수행하지 않도록 강제합니다. 그러나 수퍼유저는 어쨌든 모든 테이블의 소유권을 변경할 수 있습니다.) 열을 추가하거나 열 유형을 변경하려면 다음 사항도 있어야 합니다.사용데이터 유형에 대한 권한입니다.

매개변수

이름

변경할 기존 외부 테이블의 이름(스키마 한정). 만일22739_22809이 지정되지 않으면 토토 캔과 모든 하위 토토 캔(있는 경우)이 변경됩니다. 선택적으로,*테이블 이름 뒤에 지정하여 하위 테이블이 포함되어 있음을 명시적으로 나타낼 수 있습니다.

컬럼_이름

새 열 또는 기존 열의 이름.

new_column_name

기존 열의 새 이름.

new_name

테이블의 새 이름입니다.

데이터_유형

새 열의 데이터 유형 또는 기존 열의 새 데이터 유형.

table_constraint

외부 토토 캔에 대한 새로운 토토 캔 제약 조건.

제약_이름

삭제할 기존 제약조건의 이름.

캐스케이드

삭제된 열 또는 제약 조건(예: 열을 참조하는 뷰)에 의존하는 객체를 자동으로 삭제하고 해당 객체에 의존하는 모든 객체를 자동으로 삭제합니다(참조PostgreSQL : 문서 : 10 : 5.13.스포츠 토토 사이트 추적).

제한

종속 개체가 있는 경우 열이나 제약 조건 삭제를 거부하십시오. 이것이 기본 동작입니다.

trigger_name

비활성화하거나 활성화할 단일 트리거의 이름.

전체

외부 테이블에 속하는 모든 트리거를 비활성화하거나 활성화합니다. (트리거 중 하나라도 내부적으로 생성된 트리거인 경우 수퍼유저 권한이 필요합니다. 핵심 시스템은 이러한 트리거를 외부 테이블에 추가하지 않지만 추가 기능 코드에서는 그렇게 할 수 있습니다.)

사용자

내부적으로 생성된 트리거를 제외하고 외부 테이블에 속하는 모든 트리거를 비활성화하거나 활성화합니다.

parent_table

이 외부 토토 캔과 연결하거나 연결 해제할 상위 토토 캔입니다.

new_owner

테이블의 새로운 소유자의 사용자 이름.

new_schema

테이블이 이동될 스키마의 이름.

참고

핵심 단어노이즈이므로 생략 가능합니다.

다음으로 열을 추가하거나 제거할 때 외부 서버와의 일관성이 확인되지 않습니다.열 추가또는열 삭제, 아NULL이 아님또는확인제약조건이 추가되거나 열 유형이 다음으로 변경됨데이터 유형 설정. 테이블 정의가 원격 측과 일치하는지 확인하는 것은 사용자의 책임입니다.

참조외부 토토 캔 생성유효한 매개변수에 대한 추가 설명을 참조하세요.

열을 null이 아닌 것으로 표시하려면:

ALTER FOREIGN TABLE 배포자 ALTER COLUMN street SET NOT NULL;

외부 테이블의 옵션을 변경하려면:

ALTER FOREIGN TABLE myschema.distributors OPTIONS (ADD opt1 '값', SET opt2 '값2', DROP opt3 '값3');

호환성

양식추가, 드롭데이터 유형 설정SQL 표준을 준수합니다. 다른 형태는 다음과 같습니다.PostgreSQLSQL 표준의 확장입니다. 또한 단일에서 둘 이상의 조작을 지정하는 기능도 있습니다.외부 토토 캔 변경명령은 확장입니다.

외부 테이블 드롭 열 변경은(는) 열이 없는 테이블을 남겨두고 외부 테이블의 유일한 열을 삭제하는 데 사용될 수 있습니다. 이는 열이 없는 외부 테이블을 허용하지 않는 SQL의 확장입니다.