이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 외국 롤 토토 만들기버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

외국 토토 캔 만들기

외국 토토 캔 만들기 - 새 외국 테이블 정의

시놉시스

외국 토토 캔 만들기 [존재하지 않으면]table_namecolumn_name data_type[옵션 (옵션'value' [, ...])] [CollateCollation] [column_constraint[...]]
    |table_constraint| 좋다source_table[like_option...]
    [, ...]
])))
[상속 (parent_table[, ...])]
  섬기는 사람server_name[옵션 (옵션'value' [, ...])]

외국 토토 캔 만들기 [존재하지 않으면]table_name파티션parent_table[(column_name[옵션 포함] [column_constraint[...]]
    |table_constraint[, ...]
))]]
valuePartition_Bound_spec| 기본 
  섬기는 사람server_name[옵션 (옵션'value' [, ...])여기서column_constraintis :[제약제약 _name]
null NOT NOT [상속 없음] |
  널 |
  확인하다 (표현) [상속 없음] |
  기본default_expr|
  항상 (로 생성Generation_Expr) [저장 | 가상 ]table_constraintis :[제약제약 _name]
nullcolumn_name[상속 없음] |
   확인하다 (표현) [상속 없음]andlike_optionis :포함 | 제외 댓글 | 제약 | 기본값 | 생성 | 통계 | 모두andPartition_bound_specis :in (Partition_bound_expr[, ...]) |
에서 (Partition_bound_expr| MinValue | maxValue [, ...])
  에게 (Partition_bound_expr| MinValue | maxValue [, ...]) |
with (modulusNumeric_Literal, 나머지Numeric_Literal)

설명

외국 토토 캔 만들기현재 데이터베이스에 새 외국 테이블을 만듭니다. 테이블은 명령을 발행하는 사용자가 소유합니다.

스키마 이름이 주어진 경우 (예 :외국 토토 캔 만들기 myschema.mytable ...) 그러면 표가 지정된 스키마에서 생성됩니다. 그렇지 않으면 현재 스키마에서 생성됩니다. 외국 테이블의 이름은 동일한 스키마에서 다른 관계 (테이블, 시퀀스, 인덱스, 뷰, 구체화 된보기 또는 외국 테이블)의 이름과 구별되어야합니다..

외국 토토 캔 만들기또한 외국 토토 캔의 한 행에 해당하는 복합 유형을 나타내는 데이터 유형을 자동으로 생성합니다. 따라서 외국 토토 캔은 동일한 스키마의 기존 데이터 유형과 동일한 이름을 가질 수 없습니다.

if파티션조항이 지정된 다음 표는의 파티션으로 생성됩니다.parent_table지정된 경계와 함께.

외국 토토 캔을 만들 수 있으려면usage외국 서버의 권한뿐만 아니라사용법표에 사용 된 모든 열 유형에 대한 권한.

매개 변수

존재하지 않으면

같은 이름과의 관계가 이미 존재하는 경우 오류를 던지지 마십시오. 이 경우 통지가 발행됩니다. 기존 관계가 생성 된 관계와 비슷하다는 보장은 없습니다.

table_name

생성 할 토토 캔의 이름 (선택적으로 스키마 자격).

column_name

새 토토 캔에서 작성할 열의 이름.

data_type

열의 데이터 유형. 여기에는 배열 지정자가 포함될 수 있습니다. 지원하는 데이터 유형에 대한 자세한 내용은PostgreSQL, 참조PostgreSQL : 문서 : 개발 : 8 장 데이터 배트맨 토토.

CollateCollation

theCollateCLASE는 콜로레이션을 열에 할당합니다 (이는 Collatable 데이터 유형이어야합니다). 지정되지 않으면 열 데이터 유형의 기본 콜레이션이 사용됩니다.

상속 (parent_table[, ...])

선택 사항상속절은 새 외국 테이블이 모든 열을 자동으로 상속하는 테이블 목록을 지정합니다. 부모 테이블은 일반 테이블 또는 외국 테이블 일 수 있습니다. 비슷한 형태의 참조토토 캔 만들기자세한 내용은

파티션parent_tablevaluePartition_Bound_spec| 기본

이 양식을 사용하여 지정된 파티션 경계 값을 갖는 주어진 부모 테이블의 파티션으로 외국 테이블을 만들 수 있습니다. 비슷한 형태의 참조토토 캔 생성자세한 내용은. 현재 외국 테이블을 부모 테이블의 파티션으로 만들 수는 없습니다.고유 한상위 토토 캔의 색인. (참조ALTER 테이블 첨부 파티션.)

좋아요source_table[like_option...]

theLike조항은 새 토토 캔이 모든 열 이름, 데이터 유형 및 널없는 제약 조건을 자동으로 복사하는 토토 캔을 지정합니다..

와 달리상속, 새 토토 캔과 원본 토토 캔은 창조가 완료된 후에 완전히 분리됩니다. 원래 토토 캔의 변경 사항은 새 토토 캔에 적용되지 않으며 원래 토토 캔의 스캔에 새 토토 캔의 데이터를 포함시킬 수 없습니다.

와 달리상속, 열 및 제약 조건에 의해 복사좋아요는 유사하게 명명 된 열 및 제약 조건과 병합되지 않습니다. 동일한 이름이 명시 적으로 또는 다른 사람에 지정된 경우Like조항, 오류가 신호를받습니다.

선택 사항like_optionClauses 복사 할 원본 토토 캔의 추가 속성을 지정합니다. 지정포함속성을 복사하고 지정제외재산을 생략합니다.제외기본값입니다. 동일한 종류의 객체에 대해 여러 사양을 만들면 마지막 사양이 사용됩니다. 사용 가능한 옵션은 다음과 같습니다.

의견 포함

복사 된 열 및 제약 조건에 대한 의견이 복사됩니다. 기본 동작은 주석을 배제하여 새 토토 캔의 복사 된 열 및 제약 조건이 주석이없는 것입니다.

제약 포함

check제약 조건이 복사됩니다. 열 제약 조건과 토토 캔 제약 조건 사이에는 차이가 없습니다. 널없는 제약 조건은 항상 새 토토 캔에 복사됩니다.

기본값 포함

복사 된 열 정의에 대한 기본 표현이 복사됩니다. 그렇지 않으면 기본 표현식이 복사되지 않아 새 테이블의 복사 된 열에 널 기본값이 있습니다. 와 같은 데이터베이스 수정 기능을 호출하는 기본값을 복사합니다.NextVal, 원본과 새 토토 캔 사이에 기능적 연결을 생성 할 수 있습니다.

생성 포함

복사 된 열 정의의 모든 생성 표현이 복사됩니다. 기본적으로 새 열은 일반 기본 열입니다.

통계 포함

확장 통계가 새 토토 캔에 복사됩니다.

ALL 포함

ALL 포함는 사용 가능한 모든 개별 옵션을 선택하는 약식 양식입니다. (개인을 쓰는 것이 유용 할 수 있습니다제외이후의 조항ALL 포함특정 옵션을 제외한 모든 옵션을 선택하려면)

제약 조건제약 _name

열 또는 테이블 제약 조건의 선택 이름. 제약 조건이 위반되면 제약 조건 이름이 오류 메시지에 표시되므로와 같은 제약 이름이 있습니다.col은 긍정적이어야합니다유용한 제약 정보를 클라이언트 응용 프로그램에 전달하는 데 사용할 수 있습니다. (공백이 포함 된 제한 조건 이름을 지정하려면 이중 점수가 필요합니다.) 제약 이름이 지정되지 않은 경우 시스템은 이름을 생성합니다..

NOT NULL[상속 없음]

열에 널 값을 포함 할 수 없습니다.

제약 조건으로 표시상속 없음자식 토토 캔로 전파되지 않습니다.

NULL

열에는 널 값이 포함되도록 허용됩니다. 이것은 기본입니다.

이 조항은 비표준 SQL 데이터베이스와의 호환성 만 제공됩니다. 새로운 응용 프로그램에서는 사용이 권장되지 않습니다.

check (표현) [상속 없음]

thecheck조항은 외국 테이블의 각 행이 만족할 것으로 예상되는 부울 결과를 생성하는 표현을 지정합니다. 즉, 표현식은 외국 테이블의 모든 행에 대해 참든 알려지지 않았으며, 거짓을하지 않아야합니다. 열 제약 조건으로 지정된 확인 제약 조건은 열의 값 만 참조해야하며 테이블 제약 조건에 나타나는 표현식은 여러 열을 참조 할 수 있습니다..

현재,check표현식에는 하위 쿼리가 포함되어 있거나 현재 행의 열 이외의 변수를 참조 할 수 없습니다. 시스템 열Tableoid참조 될 수 있지만 다른 시스템 열이 없습니다.

제약 조건으로 표시상속 없음자식 토토 캔로 전파되지 않습니다.

기본값default_expr

the기본값절은 열 정의가 내부에 나타나는 열에 대한 기본 데이터 값을 할당합니다. 값은 모든 가변 표현식입니다 (현재 테이블의 다른 열에 대한 하위 쿼리 및 상호 참조는 허용되지 않습니다). 기본 표현식의 데이터 유형은 열의 데이터 유형과 일치해야합니다.

기본 표현식은 열에 값을 지정하지 않는 삽입 작업에서 사용됩니다. 열에 대한 기본값이 없으면 기본값은 null입니다.

항상 ( 생성Generation_Expr) [저장 | 가상 ]

이 조항은 열을 a로 만듭니다.생성 열. 열을 기록 할 수 없으며, 읽을 때 지정된 표현식의 결과가 반환됩니다.

whenVirtual지정되어 있으며 열은 읽을 때 계산됩니다. (외국 데이터 래퍼는 그것을 새 행에서 널 값으로보고 그것을 널 값으로 보관하거나 완전히 무시할 수 있습니다.)저장지정되어 있으며 열은 쓰기시 계산됩니다. (계산 된 값은 저장을 위해 외국 데이터 래퍼에 제시되며 읽기시 반환해야합니다.)Virtual기본값입니다.

생성 표현식은 테이블의 다른 열을 참조 할 수 있지만 다른 생성 열은 아닙니다. 사용 된 기능과 운영자는 불변이어야합니다. 다른 테이블에 대한 참조는 허용되지 않습니다.

server_name

외국 테이블에 사용할 기존 외국 서버의 이름. 서버 정의에 대한 자세한 내용은 참조하십시오.서버 생성.

옵션 (옵션'value' [, ...])

새 외국 테이블 또는 열 중 하나와 관련 될 옵션. 허용 옵션 이름과 값은 각 외국 데이터 래퍼에 따라 다르며 외부 데이터 래퍼의 유효성 검사기 기능을 사용하여 검증됩니다. 중복 옵션 이름은 허용되지 않습니다 (테이블 옵션과 동일한 이름을 갖는 열 옵션에 대해서는 괜찮지 만)..

노트

외국 토토 캔의 제약 (예 :check또는NOT NULLClauses)는 핵심에 의해 시행되지 않습니다PostgreSQL시스템 및 대부분의 외국 데이터 포장지도이를 시행하려고 시도하지 않습니다. 즉, 제약은 단순히 사실을 유지한다고 가정합니다. 그러한 시행에는 외국 테이블을 통해 삽입되거나 업데이트 된 행에만 적용되며 원격 서버의 직접적으로 직접 수정되지 않은 행에는 적용되므로 요점은 거의 없습니다. 대신, 외국 테이블에 첨부 된 제약 조건은 원격 서버에 의해 시행되는 제약 조건을 나타냅니다.

일부 특수 목적 외국 데이터 포장지는 그들이 액세스하는 데이터에 대한 유일한 액세스 메커니즘 일 수 있으며,이 경우 외국 데이터 포장지 자체가 제약 조건 시행을 수행하는 것이 적절할 수 있습니다. 그러나 문서가 그렇게 말하지 않는 한 래퍼가 그렇게한다고 가정해서는 안됩니다.

비록PostgreSQL외래 테이블의 제약을 시행하려고 시도하지 않으므로 쿼리 최적화의 목적으로 올바른 것으로 가정합니다. 외국 테이블에 선언 된 제약 조건을 충족하지 않는 행이 보이는 경우 표의 쿼리는 오류 또는 잘못된 답변을 생성 할 수 있습니다. 제약 정의가 현실과 일치하는지 확인하는 것은 사용자의 책임입니다.

주의

외국 테이블이 분할 된 테이블의 파티션으로 사용되면 그 내용이 분할 규칙을 충족해야한다는 암시 적 제약 조건이 있습니다. 다시 말하지만, 원격 서버에 일치하는 제약 조건을 설치하여 가장 잘 수행되는 것이 사실인지 확인하는 것이 사용자의 책임입니다.

외국 테이블 파티션을 포함하는 분할 된 테이블 내에서업데이트28168_28455업데이트원격 서버가 올바르게 시행한다고 가정 할 때 분할 제약으로 인해 실패 할 필요가 있습니다.

생성 된 열에 유사한 고려 사항이 적용됩니다. 저장된 생성 열은 로컬 삽입 또는 업데이트에서 계산됩니다PostgreSQL서버 및 외국 데이터 저장소에 기록하기 위해 외국 데이터 래퍼에 건네지 만 외국 테이블의 쿼리는 생성 표현식과 일치하는 저장된 생성 된 열에 대한 값을 반환하는 것이 시행되지 않습니다. 다시 말하지만, 이것은 쿼리 결과가 잘못 될 수 있습니다.

외국 토토 캔 만들기영화, 서버를 통해 액세스 할 것입니다film_server:

외국 테이블 필름 만들기 (
    코드 문자 (5) NULL,
    타이틀 바르 차 (40) null,
    정수가 무효가되지 않았습니까?
    date_prod 날짜,
    Kind Varchar (10),
    렌 간격 시간에서 분
))
서버 필름 _server;

외국 토토 캔 만들기Measurement_Y2016M07, 서버를 통해 액세스 할 것입니다Server_07, 범위의 파티션 테이블의 파티션으로측정:

외래 테이블 측정 _y2016M07 생성
    ( '2016-07-01')에서 ( '2016-08-01')에서 값 측정 분할
    Server Server_07;

호환성

the외국 토토 캔 만들기명령은 크게를 준수합니다SQL표준; 그러나와 마찬가지로토토 캔 생성, ​​null제약 조건 및 제로 컬럼 이외의 테이블이 허용됩니다. 열 기본값을 지정하는 기능도 A입니다.PostgreSQL확장. 테이블 상속,에 정의 된 형식의PostgreSQL, 비표준입니다. 그만큼좋아요조항은이 명령에서 뒷받침되는 대표적인 표준입니다.