외국 토토 캔 만들기 - 새 외국 테이블 정의
외국 토토 캔 만들기 [존재하지 않으면]table_name
column_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_constraint
is :[제약제약 _name
] null NOT NOT [상속 없음] | 널 | 확인하다 (표현
) [상속 없음] | 기본default_expr
| 항상 (로 생성Generation_Expr
) [저장 | 가상 ]및table_constraint
is :[제약제약 _name
] nullcolumn_name
[상속 없음] | 확인하다 (표현
) [상속 없음]andlike_option
is :포함 | 제외 댓글 | 제약 | 기본값 | 생성 | 통계 | 모두andPartition_bound_spec
is :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
theCollate
CLASE는 콜로레이션을 열에 할당합니다 (이는 Collatable 데이터 유형이어야합니다). 지정되지 않으면 열 데이터 유형의 기본 콜레이션이 사용됩니다.
상속 (parent_table
[, ...])
선택 사항상속
절은 새 외국 테이블이 모든 열을 자동으로 상속하는 테이블 목록을 지정합니다. 부모 테이블은 일반 테이블 또는 외국 테이블 일 수 있습니다. 비슷한 형태의 참조토토 캔 만들기
자세한 내용은
파티션parent_table
valuePartition_Bound_spec
| 기본
이 양식을 사용하여 지정된 파티션 경계 값을 갖는 주어진 부모 테이블의 파티션으로 외국 테이블을 만들 수 있습니다. 비슷한 형태의 참조토토 캔 생성
자세한 내용은. 현재 외국 테이블을 부모 테이블의 파티션으로 만들 수는 없습니다.고유 한
상위 토토 캔의 색인. (참조ALTER 테이블 첨부 파티션
.)
좋아요source_table
[like_option
...]
theLike
조항은 새 토토 캔이 모든 열 이름, 데이터 유형 및 널없는 제약 조건을 자동으로 복사하는 토토 캔을 지정합니다..
와 달리상속
, 새 토토 캔과 원본 토토 캔은 창조가 완료된 후에 완전히 분리됩니다. 원래 토토 캔의 변경 사항은 새 토토 캔에 적용되지 않으며 원래 토토 캔의 스캔에 새 토토 캔의 데이터를 포함시킬 수 없습니다.
와 달리상속
, 열 및 제약 조건에 의해 복사좋아요
는 유사하게 명명 된 열 및 제약 조건과 병합되지 않습니다. 동일한 이름이 명시 적으로 또는 다른 사람에 지정된 경우Like
조항, 오류가 신호를받습니다.
선택 사항like_option
Clauses 복사 할 원본 토토 캔의 추가 속성을 지정합니다. 지정포함
속성을 복사하고 지정제외
재산을 생략합니다.제외
기본값입니다. 동일한 종류의 객체에 대해 여러 사양을 만들면 마지막 사양이 사용됩니다. 사용 가능한 옵션은 다음과 같습니다.
의견 포함
복사 된 열 및 제약 조건에 대한 의견이 복사됩니다. 기본 동작은 주석을 배제하여 새 토토 캔의 복사 된 열 및 제약 조건이 주석이없는 것입니다.
제약 포함
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 NULL
Clauses)는 핵심에 의해 시행되지 않습니다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, 비표준입니다. 그만큼좋아요
조항은이 명령에서 뒷받침되는 대표적인 표준입니다.