이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 스포츠 토토 사이트 작성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

스포츠 토토 베트맨 생성

스포츠 토토 베트맨 작성 - 새 스포츠 토토 베트맨 정의

시놉시스

생성 [[Global | 로컬] 임시 |table_name([column_name data_type[CollateCollation] [column_constraint[...]]table_constraint| 좋다source_table [ like_option...]parent_table[, ...])]column_name | ( 표현) [CollateCollation] [opclass] [, ...])]Storage_Parameter[=value] [, ...]) | oids |TableSpace_name]table_nameoftype_name[(column_name[옵션 포함] [column_constraint[...]]table_constraintcolumn_name | ( 표현) [CollateCollation] [opclass] [, ...])]Storage_Parameter[=value] [, ...]) | oids |TableSpace_name]table_name파티션parent_table[(column_name[옵션 포함] [column_constraint[...]]table_constraintPartition_bound_spec[범위 | 목록  (column_name | ( 표현) [CollateCollation] [opclass] [, ...])]Storage_Parameter[=value] [, ...]) | oids |TableSpace_name ]

여기서column_constraintIS :[제약제약 _name]표현) [상속 없음] |default_expr|시퀀스_options)] |index_parameters|index_parameters|Reftable[(Refcolumn)] [일치 전체 | 부분적 일치 |Action] [업데이트Action]andtable_constraintIS :[제약제약 _name]표현) [상속 없음] |column_name[, ...])index_parameters|column_name[, ...])index_parameters|index_method] (Exclude_Elementwith운영자[, ...])index_parameters[where (술어) |column_name[, ...]) 참조Reftable[(Refcolumn[, ...])]Action] [업데이트Action]andlike_optionIS :포함 | 제외 댓글 |andPartition_bound_specIS :in (Numeric_Literal | String_Literal| 참 |Numeric_Literal | String_Literal| 참 |Numeric_Literal | String_Literal| 참 |index_parametersin고유 한, 기본 키제외제약 조건은 다음과 같습니다.[with (Storage_Parameter[=value] [, ...])]TableSpace_name ]

Exclude_Elementin제외제약은 :

{ column_name | ( 표현) [opclass] [asc | desc] [nulls 첫 번째 |

설명

스포츠 토토 베트맨 생성현재 데이터베이스에 새롭고 처음 빈 테이블을 생성합니다. 테이블은 명령을 발행하는 사용자가 소유합니다.

스키마 이름이 제공되는 경우 (예 :스포츠 토토 베트맨 작성 myschema.mytable ...) 그러면 표는 지정된 스키마에서 생성됩니다. 그렇지 않으면 현재 스키마에서 생성됩니다.

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

선택적 제한 조건 조항은 새로운 또는 업데이트 된 행이 삽입 또는 업데이트 작업을 위해 만족해야한다는 기본값 | 조건 (테스트)을 지정합니다. 기본값 | 조건은 다양한 방식으로 스포츠 토토 베트맨의 유효한 값 세트를 정의하는 데 도움이되는 SQL 객체입니다.

기본값 | 조건을 정의하는 두 가지 방법이 있습니다 : 표 제한 및 열 기본값 | 조건. 열 기본값 | 조건은 열 정의의 일부로 정의됩니다.

스포츠 토토 베트맨을 만들 수 있으려면usage모든 열 유형 또는 유형에 대한 권한of각각 조항.

매개 변수

임시또는temp

지정된 경우 테이블은 임시 테이블로 생성됩니다. 임시 테이블은 세션이 끝날 때 또는 현재 트랜잭션이 끝날 때 자동으로 삭제됩니다 (참조on Commit아래). 이름이 동일한 기존 영구 테이블은 현재 세션에 표시되지 않으며 임시 테이블은 스키마 자격이없는 이름으로 참조하지 않는 한 임시 테이블이 존재합니다.

theautovacuum daemon액세스 할 수 없으므로 임시 테이블을 청소하거나 분석 할 수 없습니다. 이러한 이유로, 세션 SQL 명령을 통해 적절한 진공 및 분석 작업을 수행해야합니다.분석인구가 채워진 후 임시 테이블에서.

선택적으로글로벌또는Local전에 작성할 수 있습니다임시또는temp. 이것은 현재 차이가 없습니다PostgreSQL보다호환성.

미등록

지정된 경우 테이블은 예정되지 않은 테이블로 생성됩니다. 미등록 테이블에 작성된 데이터는 쓰기 로그에 기록되지 않습니다 (참조범퍼카 토토 : 문서 : 10 : 30 장. 신뢰성과 쓰기 로그)는 일반 테이블보다 훨씬 빠릅니다. 그러나 충돌 안전이 아닙니다. 충돌 또는 부정확 한 종료 후에도 무제한 테이블이 자동으로 잘립니다.

존재하지 않으면

같은 이름과의 관계가 이미 존재하는 경우 오류를 던지지 마십시오. 이 경우 통지가 발행됩니다.

table_name

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

oftype_name

a 생성입력 스포츠 토토 베트맨는 지정된 복합 유형에서 구조를 가져옵니다 (이름 선택적으로 스키마 자격). 입력 된 테이블은 그 유형에 연결되어 있습니다.드롭 타입 ... 캐스케이드).

유형 스포츠 토토 베트맨이 만들어지면 열의 데이터 유형은 기본 복합 유형에 의해 결정되며에 의해 지정되지 않습니다.스포츠 토토 베트맨 생성명령. 하지만스포츠 토토 베트맨 생성명령은 표에 기본값과 제약을 추가하고 스토리지 매개 변수를 지정할 수 있습니다.

파티션parent_tablePartition_bound_spec

스포츠 토토 베트맨을 A로 만듭니다파티션지정된 부모 스포츠 토토 베트맨의

thePartition_bound_spec부모 테이블의 분할 방법 및 파티션 키에 해당해야하며 해당 부모의 기존 파티션과 겹쳐서는 안됩니다. 형식in목록 파티셔닝에 사용되며 양식은Fromandto범위 파티셔닝에 사용됩니다.

에 지정된 각 값Partition_bound_spec문자 그대로NULL, MinValue또는maxValue. 각 문자 그럴 값은 해당 파티션 키 열 유형에 강요되는 숫자 상수이거나 해당 유형에 대한 유효한 입력 인 문자열 리터럴이어야합니다..

목록 파티션을 만들 때NULL파티션이 파티션 키 열이 무효화되도록 함을 나타내도록 지정할 수 있습니다. 그러나 주어진 상위 테이블에 대한 그러한 목록 파티션이 둘 이상있을 수 없습니다.NULL범위 파티션에 대해 지정할 수 없습니다.

범위 파티션을 생성 할 때로 지정된 하부 경계From는 포괄적 인 경계이며, 상단 경계는to는 독점적 인 경계입니다. 즉,에 지정된 값From목록은이 파티션에 대한 해당 파티션 키 열의 유효한 값 인 반면to목록은 아닙니다. 이 진술은 Row-Wise 비교 규칙에 따라 이해되어야합니다 (섹션 9.23.5). 예를 들어, 주어진​​범위 별 파티션 (x, y), 파티션 바운드(1, 2)에서 (3, 4)에서허용x=1y> = 2, x=2널이없는yx=3y <4.

특별 값MinValueandmaxValue열 파티션을 만들 때 열의 값에 하단 또는 상한이 없음을 나타내는 경우 사용될 수 있습니다. 예를 들어,를 사용하여 정의 된 파티션(MinValue)에서 (10)까지10 미만의 값을 허용하고를 사용하여 정의 된 파티션(10)에서 (maxValue)10 이상 또는 동일한 값을 허용합니다.

두 개 이상의 열과 관련된 범위 파티션을 만들 때 사용하는 것이 합리적 일 수 있습니다maxValue하부의 일부로MinValue상한의 일부로. 예를 들어,를 사용하여 정의 된 파티션(0, maxValue)에서 (10, maxValue)첫 번째 파티션 키 열이 0보다 크고 10보다 작거나 같은 행을 허용합니다. 마찬가지로( 'a', minvalue)에서 ( 'b', minvalue)첫 번째 파티션 키 열이 "a"로 시작하는 행을 허용합니다..

ifMinValue또는maxValue파티션 경계의 한 열에 사용되므로 모든 후속 열에 동일한 값을 사용해야합니다. 예를 들어,(10, MinValue, 0)유효한 경계가 아닙니다. 당신은 작성해야합니다(10, MinValue, MinValue).

또한과 같은 일부 요소 유형에 유의하십시오.타임 스탬프, "인피니티"라는 개념이 있으며, 이는 저장할 수있는 또 다른 값입니다. 이것은와 다릅니다.MinValueandmaxValue, 저장할 수있는 실제 값이 아니라 값이 무한하다고 말하는 방법입니다.maxValue"Infinity"및를 포함한 다른 값보다 더 큰 것으로 생각할 수 있습니다.MinValue"마이너스 인피니티"를 포함한 다른 값보다 적습니다. 따라서 범위( 'Infinity')에서 (maxValue)빈 범위가 아닙니다. 정확히 하나의 값을 저장할 수 있습니다 - "무한".

파티션은 그에 속하는 파티션 된 테이블과 동일한 열 이름과 유형을 가져야합니다. 부모가 지정된 경우OIDS와 함께그러면 모든 파티션에는 OID가 있어야합니다. 부모의 OID 열은 다른 열과 마찬가지로 모든 파티션에 의해 상속됩니다.check기본값 | 조건은 모든 파티션에 의해 자동으로 상속되지만 개별 파티션은 추가를 지정할 수 있습니다check기본값 | 조건; 부모와 동일한 이름과 조건을 가진 추가 기본값 | 조건은 상위 기본값 | 조건과 병합됩니다.

파티션 된 테이블에 삽입 된 행은 자동으로 올바른 파티션으로 라우팅됩니다. 적절한 파티션이 없으면 오류가 발생합니다.

일반적으로 테이블에 영향을 미치는 Truncate와 같은 운영 및 모든 상속 자녀는 모든 파티션에 대한 계단식이지만 개별 파티션에서도 수행 될 수 있습니다. 로 파티션을 떨어 뜨리는 것은드롭 스포츠 토토 베트맨액세스 독점부모 스포츠 토토 베트맨의 잠그십시오.

column_name

새 스포츠 토토 베트맨에서 작성할 열의 이름.

data_type

열의 데이터 유형. 여기에는 배열 지정자가 포함될 수 있습니다.PostgreSQL, 참조PostgreSQL : 문서 : 10 : 8 장 데이터 와이즈 토토.

CollateCollation

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

상속 (parent_table[, ...])

선택 사항상속절은 새 테이블이 모든 열을 자동으로 상속하는 테이블 목록을 지정합니다. 부모 테이블은 일반 테이블 또는 외국 테이블 일 수 있습니다.

사용상속새 아동 스포츠 토토 베트맨과 부모 스포츠 토토 베트맨 사이에 지속적인 관계를 만듭니다. 부모에 대한 스키마 수정은 일반적으로 어린이에게도 전파되며 기본적으로 아동 스포츠 토토 베트맨의 데이터는 부모의 스캔에 포함됩니다..

동일한 열 이름이 두 개 이상의 상위 스포츠 토토 베트맨에 존재하는 경우 각각의 부모 스포츠 토토 베트맨에서 열의 데이터 유형이 일치하지 않는 한 오류가보고됩니다. 충돌이 없으면 중복 열이 병합되어 새 스포츠 토토 베트맨에서 단일 열을 형성합니다.

check기본값 | 조건은 본질적으로 열과 동일한 방식으로 병합됩니다. 여러 상위 테이블 및/또는 새 테이블 정의에 동일한 이름이 포함 된 경우check기본값 | 조건, 이러한 기본값 | 조건은 모두 동일한 점검 식을 가져야하거나 오류가보고됩니다. 동일한 이름과 표현식을 갖는 기본값 | 조건은 하나의 사본으로 병합됩니다.상속 없음부모의 경우 고려되지 않습니다. 이름이없는check새 테이블의 제약 조건은 결코 병합되지 않습니다. 고유 한 이름은 항상 선택되므로

스토리지설정도 부모 스포츠 토토 베트맨에서 복사됩니다.

상위 테이블의 열이 ID 열인 경우 해당 속성이 상속되지 않습니다. 어린이 테이블의 열은 원하는 경우 신분을 선언 할 수 있습니다.

범위 | 목록 (column_name | ( 표현) [opclass] [, ...])

선택 사항파티션 by절은 스포츠 토토 베트맨을 분할하는 전략을 지정합니다. 이렇게 만들어진 스포츠 토토 베트맨을 a라고합니다.파티션테이블. 괄호이 된 열 또는 표현식 목록이를 형성합니다.파티션 키테이블의 경우. 범위 파티셔닝을 사용하는 경우 파티션 키에는 여러 열이나 표현이 포함될 수 있지만 (최대 32 개,이 한도는 빌드시 변경 될 수 있습니다)PostgreSQL) 그러나 목록 파티셔닝의 경우 파티션 키는 단일 열 또는 표현식으로 구성되어야합니다. 분할 된 테이블을 만들 때 b- 트리 연산자 클래스가 지정되지 않으면 데이터 유형의 기본 B-Tree 연산자 클래스가 사용됩니다.

분할 된 테이블은 하위 테이블 (파티션이라고 함)으로 나뉘며 별도의스포츠 토토 베트맨 생성명령. 분할 된 스포츠 토토 베트맨 자체는 비어 있습니다.

파티션 된 테이블은 지원하지 않습니다고유 한, 기본 키, 제외또는외국 키제약 조건; 그러나 개별 파티션에서 이러한 제약을 정의 할 수 있습니다.

좋아요source_table [ like_option...]

the좋아요조항은 새 스포츠 토토 베트맨이 모든 열 이름, 데이터 유형 및 확인하다 (없는 기본값 | 조건을 자동으로 복사하는 스포츠 토토 베트맨을 지정합니다..

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

복사 된 열 정의에 대한 기본 표현식은 만 복사됩니다기본값 포함지정되어 있습니다. 기본 동작은 기본 표현식을 제외하여 새 테이블의 복사 열이 확인하다 ( 기본값을 갖는 것입니다.NextVal, 원본과 새 스포츠 토토 베트맨 사이에 기능적 연결을 생성 할 수 있습니다.

복사 된 열 정의의 신분 사양은 if 만 복사됩니다.신원 포함지정되어 있습니다. 새 테이블의 각 ID 열에 대해 새 시퀀스가 ​​생성됩니다. 이전 테이블과 관련된 시퀀스와 별개.

Not-Null 제약 조건은 항상 새 스포츠 토토 베트맨에 복사됩니다.check제약 조건은 만 복사됩니다제약 포함지정되어 있습니다. 열 제약 조건과 표 제한 사이에는 구별이 없습니다.

확장 통계가 새 스포츠 토토 베트맨에 복사됩니다.통계 포함지정되어 있습니다.

인덱스,기본 키, 고유 한제외원래 스포츠 토토 베트맨의 제약 조건은 새 스포츠 토토 베트맨에서만 생성됩니다.색인 포함지정되어 있습니다. 새로운 인덱스 및 기본값 | 조건에 대한 이름은 원본의 이름이 지정된 방법에 관계없이 기본 규칙에 따라 선택됩니다.

스토리지복사 된 열 정의에 대한 설정은 만 복사됩니다스토리지 포함지정되어 있습니다. 기본 동작은 제외하는 것입니다스토리지설정, 새 스포츠 토토 베트맨의 복사 된 열에 유형 별 기본 설정이 있습니다. 자세한 내용은스토리지설정, 참조섹션 67.2.

복사 된 열, 제약 조건 및 인덱스에 대한 의견은 만 복사됩니다.의견 포함지정되어 있습니다. 기본 동작은 주석을 배제하여 새 테이블의 복사 된 열 및 기본값 | 조건이 주석이없는 것입니다.

ALL 포함약식 형태의스토리지를 포함한 스토리지 |를 포함한 지수를 포함한 신분을 포함한 기본값을 포함한 기본값 |을 포함한 주석 포함.

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

the좋아요조항을 사용하여 뷰, 이물 표 또는 복합 유형에서 열 정의를 복사 할 수도 있습니다. 적용 할 수없는 옵션 (예 :색인 포함보기에서) 무시됩니다.

제약 조건제약 _name

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

NOT NULL

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

NULL

열에는 확인하다 ( 값이 포함됩니다. 이것은 기본입니다.

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

check (표현) [상속 없음]

thecheckCLASE는 새로운 또는 업데이트 된 행이 삽입 또는 업데이트 작업을 위해 만족 해야하는 부울 결과를 생성하는 표현식을 지정합니다. 진실 또는 미지의 성공을 평가하는 표현.

현재,check표현식은 하위 쿼리를 포함 할 수 없거나 현재 행의 열 이외의 변수를 참조 할 수 없습니다 (참조섹션 5.3.1). 시스템 열Tableoid다른 시스템 열은 참조 될 수 있지만 참조 할 수 있습니다.

제약 조건으로 표시상속 없음자식 스포츠 토토 베트맨로 전파되지 않습니다.

스포츠 토토 베트맨에 여러 개의가있는 경우check제약 조건, 확인 후 알파벳 순서로 각 행에 대해 테스트됩니다NOT NULL제약. (PostgreSQL9.5 전의 버전은 특정 발사 명령을 존중하지 않았습니다check제약 조건.)

기본값default_expr

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

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

생성 항상 | 기본적으로 ID로 [(시퀀스_options)]

이 조항은 열을 A로 작성합니다Identity Column. 암시 적 시퀀스가 ​​첨부되고 새 행의 열에는 할당 된 시퀀스의 값이 자동으로됩니다.NOT NULL.

클로즈항상and기본적으로an의 사용자 지정 값보다 시퀀스 값이 우선하는 방법을 결정합니다삽입진술. 만약에항상지정되어 있으며, 사용자 지정 값은이면 만 허용됩니다.삽입명령문 지정시스템 가치 재정의. 만약에기본적으로지정된 다음 사용자 지정 값이 우선합니다. 보다삽입자세한 내용. (에서COPY명령, 사용자 지정 값은이 설정에 관계없이 항상 사용됩니다.)

선택 사항시퀀스_options절을 사용하여 시퀀스 옵션을 무시할 수 있습니다. 보다시퀀스 만들기자세한 내용.

고유 한(열 제약 조건)
고유 한 (column_name[, ...])(테이블 제약 조건)

the고유 한기본값 | 조건은 테이블의 하나 이상의 열로 구성된 그룹에 고유 한 값 만 포함 할 수 있음을 지정합니다. 고유 한 테이블 기본값 | 조건의 동작은 독특한 열 기본값 | 조건의 동작과 동일하며 여러 열에 걸쳐 추가 기능이 있습니다.

고유 한 제약 조건의 목적을 위해 확인하다 ( 값은 동일하게 간주되지 않습니다.

각 고유 한 기본값 | 조건은 테이블에 정의 된 다른 고유 또는 기본 키 기본값 | 조건으로 명명 된 열 세트와 다른 열 세트를 지정해야합니다. (그렇지 않으면 중복 된 독특한 기본값 | 조건이 폐기됩니다.)

기본 키(열 제약 조건)
기본 키 (column_name[, ...])(테이블 제약 조건)

the기본 키기본값 | 조건 테이블의 열 또는 열에는 고유 한 (비 제시), 비 unnull 값 만 포함 할 수 있음을 지정합니다. 열 기본값 | 조건 또는 테이블 기본값 | 조건으로 테이블에 대해 하나의 기본 키 만 지정할 수 있습니다.

기본 키 기본값 | 조건은 동일한 테이블에 대해 정의 된 고유 한 구속 조건에 의해 명명 된 열 세트와 다른 열 세트를 지정해야합니다. (그렇지 않으면, 고유 한 기본값 |은 중복되어 폐기됩니다.)

기본 키동일한 데이터 제약 조건을 조합하는 것과 동일한 데이터 제약 조건을 시행합니다.고유 한andNOT NULL. 그러나 기본 키로 열 세트를 식별하면 스키마 설계에 대한 메타 데이터도 제공합니다. 기본 키는 다른 테이블 이이 열 세트에 고유 한 식별자로 의존 할 수 있음을 암시하기 때문입니다..

a 추가기본 키기본값 | 조건은 기본값 | 조건에 사용 된 열 또는 열의 열에 고유 한 btree 인덱스를 자동으로 생성합니다.

제외 [사용index_method] (Exclude_Elementwith운영자[, ...])index_parameters[where (술어)]

the제외조항은 제외 기본값 | 조건을 정의합니다. 제외 기본값 | 조건을 정의합니다.이 제한 조건은 지정된 열 또는 지정된 연산자를 사용하여 지정된 열 또는 표현식에서 비교되면 이러한 모든 비교가 반환되지는 않습니다.True. 지정된 모든 연산자가 평등을 테스트하면 이는 A와 동일합니다.고유 한기본값 | 조건, 일반적인 고유 한 기본값 | 조건이 더 빠르지 만. 그러나 배제 기본값 |은 단순한 평등보다 더 일반적인 기본값 | 조건을 지정할 수 있습니다.PostgreSQL : 문서 : 10 : 8.8. 기하학적 토토 캔) 사용하여&&운영자.

제외 기본값 | 조건은 인덱스를 사용하여 구현되므로 각 지정된 운영자는 적절한 연산자 클래스와 연관되어야합니다 (참조섹션 11.9) 색인 액세스 방법의 경우index_method. 운영자는 정류해야합니다.Exclude_Element선택적으로 운영자 클래스 및/또는 주문 옵션을 지정할 수 있습니다. 이것들은 완전히 묘사됩니다색인 생성.

액세스 방법이 지원해야합니다AmgetTuple(참조PostgreSQL : 문서 : 10 : 60 장. 색인 사설 토토 방법 인터페이스 정의); 현재 이것은 의미사용할 수 없습니다. 허용되지만 배제 기본값 |으로 B- 트리 또는 해시 인덱스를 사용하는 데는 아무런 포인트가 없습니다. 왜냐하면 일반적인 고유 한 기본값 | 조건이 더 좋지 않다는 것은 아무것도하지 않기 때문입니다.gist또는SP-Gist.

the술어테이블의 서브 세트에 제외 기본값 | 조건을 지정할 수 있습니다. 내부적으로 이것은 부분 색인을 만듭니다.

참조Reftable[(Refcolumn)] [matchmatchtype] [deleteAction] [업데이트Action ](열 제약 조건)
외국 키 (column_name[, ...]) 참조Reftable[(Refcolumn[, ...])] [matchmatchtype] [deleteAction] [업데이트Action ](테이블 제약 조건)

이 조항은 외국 키 기본값 | 조건을 지정합니다. 이는 새로운 테이블의 하나 이상의 열 구성원 그룹이 참조 된 테이블의 일부 행의 참조 열에 값을 일치시키는 값 만 포함해야합니다. 인 경우Refcolumn목록은 생략되었으며,의 주요 키Reftable사용됩니다. 참조 된 열은 참조 테이블의 고유 한 고유 또는 기본 키 기본값 | 조건의 열이어야합니다.참조참조 테이블의 허가 (전체 테이블 또는 특정 참조 열). 임시 테이블과 영구 테이블 사이에 외국의 주요 기본값 | 조건을 정의 할 수 없습니다.

참조 열에 삽입 된 값은 주어진 일치 유형을 사용하여 참조 된 테이블 및 참조 열의 값과 일치합니다. 세 가지 일치 유형이 있습니다.전체 일치, 일치 부분​​단순한 일치(기본값).전체 일치모든 외국 키 열이 null이 아닌 한 멀티 컬럼의 외국 키의 한 열이 확인하다 (을 허용하지 않습니다. 그들이 모두 null 인 경우, 행은 참조 테이블에서 일치 할 필요가 없습니다.​​단순한 일치모든 외국 키 열이 null을 허용합니다. 그들 중 하나라도 null이면 행은 참조 테이블에서 일치 할 필요가 없습니다.일치 부분아직 구현되지 않았습니다. (물론,NOT NULL이러한 사례가 발생하는 것을 방지하기 위해 참조 열에 제약 조건을 적용 할 수 있습니다.)

또한, 참조 열의 데이터가 변경되면이 테이블 열의 데이터에 대한 특정 조치가 수행됩니다. 그만큼ON DELETECLASE 참조 테이블의 참조 행이 삭제 될 때 수행 할 조치를 지정합니다. 마찬가지로,on updateclause 참조 테이블의 참조 열이 새 값으로 업데이트 될 때 수행 할 조치를 지정합니다. 행이 업데이트되었지만 참조 된 열이 실제로 변경되지 않으면 조치가 완료되지 않습니다.행동 없음기본값 | 조건이 지연 될 수 있다고해도 점검을 연기 할 수 없습니다. 각 조항에 대해 다음과 같은 가능한 조치가 있습니다.

행동 없음

삭제 또는 업데이트가 외국의 주요 기본값 | 조건 위반을 생성한다는 오류를 생성합니다. 기본값 | 조건이 연기되면 참조 행이 여전히 존재하는 경우 기본값 | 체크 시간 에이 오류가 생성됩니다.

제한

삭제 또는 업데이트가 외국의 주요 기본값 | 조건 위반을 생성한다는 오류를 생성합니다. 이것은와 동일합니다.행동 없음수표를 연기 할 수없는 경우를 제외하고

캐스케이드

삭제 된 행을 참조하는 행을 삭제하거나 참조 열의 값을 각각 참조 열의 새 값으로 업데이트합니다..

SET NULL

참조 열을 NULL로 설정합니다.

기본값 설정

참조 열을 기본값으로 설정합니다. (기본값이 확인하다 ( 있지 않거나 조작이 실패한 경우 기본값과 일치하는 참조 테이블에 행이 있어야합니다.)

참조 열이 자주 변경되면 참조 열에 인덱스를 추가하여 외국 키 기본값 | 조건과 관련된 참조 작업을보다 효율적으로 수행 할 수 있도록 현명 할 수 있습니다.

연기 가능
연기가되지 않음

이것은 기본값 | 조건을 연기 할 수 있는지 여부를 제어합니다. 연기 할 수없는 기본값 | 조건은 모든 명령 직후에 확인됩니다.제약 세트명령).연기가되지 않음기본값입니다. 현재 만고유 한, 기본 키, 제외참조(외국 키) 제약 조건을 받아들입니다.NOT NULLandcheck제약은 연기 할 수 없습니다. 연기 가능한 제약 조건은 AN에서 충돌 중재자로 사용할 수 없습니다.삽입충돌시 업데이트절.

처음에 즉시
처음 연기

기본값 | 조건을 연기 할 수있는 경우이 조항은 기본값 | 조건을 확인하기 위해 기본 시간을 지정합니다. 기본값 |이 인 경우처음에 즉시, 각 명령문 후에 확인됩니다. 이것은 기본값입니다.처음 연기, 트랜잭션이 끝날 때만 확인됩니다. 제약 조건 검사 시간은로 변경 될 수 있습니다.제약 세트명령.

with (Storage_Parameter[=value] [, ...])

이 절은 테이블 또는 인덱스의 선택적 저장 매개 변수를 지정합니다. 보다스토리지 매개 변수자세한 내용. 그만큼with스포츠 토토 베트맨에 대한 조항도 포함 할 수 있습니다oids = true(또는 JustOIDS) 새 테이블의 행에 OID (Object Identifiers)가 할당 된 OID (또는가 있어야 함을 지정하십시오.oids = false행에 OID가 없도록 지정합니다. 만약에OIDS지정되지 않았으며 기본 설정은에 따라 다릅니다.default_with_oids구성 매개 변수. (새 테이블이 OID가있는 테이블에서 물려받는 경우oids = true명령이 말하더라도 강요oids = false.)

ifoids = false지정 또는 묵시적, 새 테이블은 OID를 저장하지 않으며 삽입 된 행에 OID가 할당되지 않습니다. 이것은 OID 소비를 줄이고 32 비트 OID 카운터의 랩 어라운드를 연기하기 때문에 일반적으로 가치있는 것으로 간주됩니다.

생성 된 후 테이블에서 OID를 제거하려면 사용Alter Table.

OIDS와 함께
OIDS없는

이들은 구식 구문입니다.with (oids)andwith (oids = false)35484_35527OIDS설정 및 스토리지 매개 변수를 사용해야합니다.with (...)구문; 위의 참조.

on Commit

트랜잭션 블록 끝에서 임시 테이블의 동작은를 사용하여 제어 할 수 있습니다.on Commit. 세 가지 옵션은 다음과 같습니다.

보존 행

거래가 끝날 때 특별한 조치가 취하지 않습니다. 이것은 기본 동작입니다.

행 삭제

임시 테이블의 모든 행은 각 트랜잭션 블록의 끝에서 삭제됩니다. 본질적으로 자동Truncate각 커밋마다 수행됩니다. 분할 된 테이블에서 사용하면 파티션에 계단식이 없습니다.

드롭

임시 테이블은 현재 트랜잭션 블록의 끝에 삭제됩니다. 분할 된 테이블에 사용되면이 액션은 파티션을 떨어 뜨리고 상속 어린이와 함께 테이블에 사용될 때 부양 가족을 떨어 뜨립니다.

스포츠 토토 베트맨 스페이스TableSpace_name

theTableSpace_name새 테이블을 만들어야 할 스포츠 토토 베트맨 스페이스의 이름입니다. 지정되지 않은 경우default_tablespace상담 또는temp_tablespaces테이블이 임시 인 경우.

색인 스포츠 토토 베트맨 스페이스 사용TableSpace_name

이 조항은 a와 관련된 색인을 선택할 수 있습니다.고유 한, 기본 키또는제외제약 조건이 생성됩니다. 지정되지 않은 경우default_tablespace상담 또는temp_tablespaces테이블이 임시 인 경우.

스토리지 매개 변수

thewith조항을 지정할 수 있습니다스토리지 매개 변수스포츠 토토 베트맨 및 A와 관련된 인덱스 용고유 한, 기본 키또는제외제약. 인덱스의 스토리지 매개 변수는에 문서화되어 있습니다.색인 생성. 현재 테이블에 사용할 수있는 스토리지 매개 변수는 아래에 나열되어 있습니다.토스트., 스포츠 토토 베트맨의 보조 동작을 제어하는토스트테이블이있는 경우 (참조섹션 67.2토스트에 대한 자세한 내용은). 테이블 매개 변수 값이 설정되고 동등한 경우토스트.매개 변수는 아니고 토스트 테이블은 테이블의 매개 변수 값을 사용합니다. 분할 된 테이블에 대한 이러한 매개 변수 지정은 지원되지 않지만 개별 리프 파티션에 대해 지정할 수 있습니다.

FillFactor (정수)

테이블의 필수 요인은 10에서 100. 100 사이의 백분율입니다 (완전한 포장). 더 작은 fillfactor가 지정되면삽입운영 팩 스포츠 토토 베트맨 페이지는 표시된 백분율로 만; 각 페이지의 나머지 공간은 해당 페이지의 행을 업데이트하기 위해 예약되어 있습니다.업데이트원본과 같은 페이지에 업데이트 된 행 사본을 배치 할 수있는 기회는 다른 페이지에 배치하는 것보다 더 효율적입니다. 항목이 업데이트되지 않은 테이블의 경우 완전한 포장이 최선의 선택이지만, 더 많은 업데이트 된 테이블에서는 작은 필수기가 적절합니다.

Parallel_Workers (정수)

이것은이 표의 병렬 스캔을 돕는 데 사용해야하는 작업자의 수를 설정합니다. 설정되지 않으면 시스템은 관계 크기에 따라 값을 결정합니다.max_worker_processes.

autovacuum_enabled, Toast.Autovacuum_enabled (부울)

특정 테이블의 Autovacuum 데몬을 활성화 또는 비활성화합니다. 사실이라면 Autovacuum 데몬이 자동으로 수행됩니다진공및/또는분석이 스포츠 토토 베트맨에서의 운영에서 논의 된 규칙에 따라섹션 24.1.6. MinValue | 인 경우 트랜잭션 ID 랩 어라운드를 방지하는 것 외에는이 테이블이 자동화되지 않습니다.섹션 24.1.5랩 어라운드 방지에 대한 자세한 내용. Autovacuum 데몬은 전혀 실행되지 않습니다 (거래 ID 랩 어라운드를 제외하고autovacuum매개 변수는 false입니다. 개별 테이블의 스토리지 매개 변수를 설정해도이를 무시하지 않습니다.true거짓.

autovacuum_vacuum_threshold, Toast.Autovacuum_vacuum_threshold (정수)

표 당 값에 대한 값autovacuum_vacuum_threshold매개 변수.

autovacuum_vacuum_scale_factor, Toast.Autovacuum_vacuum_scale_factor (플로팅 포인트)

표 당 값에 대한 값autovacuum_vacuum_scale_factor매개 변수.

autovacuum_analyze_threshold (정수)

표 당 값에 대한 값autovacuum_analyze_threshold매개 변수.

autovacuum_analyze_scale_factor (플로팅 포인트)

표 당 값에 대한 값autovacuum_analyze_scale_factor매개 변수.

autovacuum_vacuum_cost_delay, 토스트. Autovacuum_vacuum_cost_delay (정수)

표 당 값에 대한 값autovacuum_vacuum_cost_delay매개 변수.

autovacuum_vacuum_cost_limit, Toast.Autovacuum_vacuum_cost_limit (정수)

표 당 값에 대한 값autovacuum_vacuum_cost_limit매개 변수.

autovacuum_freeze_min_age, Toast.Autovacuum_freeze_min_age (정수)

표 당 값에 대한 값VACUUM_FREEZE_MIN_AGE매개 변수. Autovacuum은 테이블 당 무시할 것입니다autovacuum_freeze_min_age시스템 전체의 절반보다 큰 매개 변수autovacuum_freeze_max_age설정.

autovacuum_freeze_max_age, Toast.Autovacuum_freeze_max_age (정수)

표 당 값에 대한 값autovacuum_freeze_max_age매개 변수. Autovacuum은 테이블 당 무시할 것입니다autovacuum_freeze_max_age시스템 전체 설정보다 큰 매개 변수 (더 작게 설정할 수 있음).

autovacuum_freeze_table_age, Toast.Autovacuum_freeze_table_age (정수)

표 당 값에 대한 값Vacuum_Freeze_table_age매개 변수.

autovacuum_multixact_freeze_min_age, 토스트. AaTovacuum_multixact_freeze_min_age (정수)

표 당 값에 대한 값VACUUM_MULTIXACT_FREEZE_MIN_AGE매개 변수. Autovacuum은 테이블 당 무시할 것입니다autovacuum_multixact_freeze_min_age시스템 전체의 절반보다 큰 매개 변수autovacuum_multixact_freeze_max_age설정.

autovacuum_multixact_freeze_max_age, 토스트. AaTovacuum_multixact_freeze_max_age (정수)

표 당 값에 대한 값autovacuum_multixact_freeze_max_age매개 변수. Autovacuum은 테이블 당 무시할 것입니다autovacuum_multixact_freeze_max_age시스템 전체 설정보다 큰 매개 변수 (더 작게 설정할 수 있음).

autovacuum_multixact_freeze_table_age, 토스트. AaTovacuum_multixact_freeze_table_age (정수)

표 당 값에 대한 값VACUUM_MULTIXACT_FREEZE_TABLE_AGE매개 변수.

log_autovacuum_min_duration, 토스트 .LOG_AUTOVACUUM_MIN_DURATION (정수)

표 당 값에 대한 값log_autovacuum_min_duration매개 변수.

user_catalog_table (부울)

논리적 복제 목적으로 테이블을 추가 카탈로그 테이블로 선언하십시오. 보다섹션 48.6.2자세한 내용. 토스트 테이블에 대해서는이 매개 변수를 설정할 수 없습니다.

노트

새로운 응용 프로그램에서 OID를 사용하는 것이 권장되지 않습니다. 가능한 경우 테이블의 기본 키가 선호되는 식별 열 또는 기타 시퀀스 생성기를 사용합니다. 그러나 응용 프로그램이 OID를 사용하여 테이블의 특정 행을 식별하는 경우에 고유 한 기본값 | 조건을 작성하는 것이 좋습니다.OID테이블의 열, 테이블의 OID가 카운터 랩 어라운드 후에도 실제로 행을 고유하게 식별 할 수 있도록합니다. OID가 테이블에서 독특하다고 가정하지 마십시오.Tableoid목적을위한 행 OID.

사용oids = false기본 키가없는 테이블에는 권장되지 않습니다. OID 또는 고유 한 데이터 키가 없으면 특정 행을 식별하기가 어렵습니다..

PostgreSQL고유성을 시행하기 위해 각각의 고유 한 기본값 | 조건 및 기본 키 기본값 | 조건에 대한 인덱스를 자동으로 생성합니다. 따라서 기본 키 열에 대해 명시 적으로 인덱스를 만들 필요는 없습니다.색인 생성자세한 내용은

고유 한 기본값 | 조건 및 기본 키는 현재 구현에 상속되지 않습니다. 이것은 상속과 독특한 기본값 |의 조합을 오히려 기능 장애를 다소 만듭니다.

테이블에 1600 열 이상의 열을 가질 수 없습니다. (실제로 유효 한계는 일반적으로 튜플 길이 기본값 |으로 인해 낮습니다.)

예제

스포츠 토토 베트맨 생성영화및 스포츠 토토 베트맨유통 업체:

스포츠 토토 베트맨 필름 생성 (

2 차원 배열이있는 스포츠 토토 베트맨 만들기 :

스포츠 토토 베트맨 생성 array_int (

테이블의 고유 한 테이블 제약 조건을 정의영화. 고유 한 테이블 제약 조건은 테이블의 하나 이상의 열에 정의 될 수 있습니다.

스포츠 토토 베트맨 필름 생성 (

검사 열 제약 조건 정의 :

스포츠 토토 베트맨 분배기 생성 (

체크 테이블 정의 제약 조건 :

스포츠 토토 베트맨 분배기 생성 (

테이블의 기본 키 테이블 제약 조건 정의영화:

스포츠 토토 베트맨 필름 생성 (

표에 대한 기본 키 제약 조건 정의유통 업체. 다음 두 가지 예는 동일하며, 첫 번째는 테이블 기본값 | 조건 구문을 사용하고 두 번째 열 기본값 | 조건 구문 :

스포츠 토토 베트맨 분배기 생성 (

열에 문자 그대로 상수 기본값을 지정이름, 열의 기본값을 배열did시퀀스 객체의 다음 값을 선택하여 생성하고 기본값을 만들어modtime행이 삽입되는 시간이 되십시오 :

스포츠 토토 베트맨 분배기 생성 (

두 정의NOT NULL표의 열 제약 조건유통 업체

스포츠 토토 베트맨 분배기 생성 (

|이름열 :

스포츠 토토 베트맨 분배기 생성 (

테이블 제약 조건으로 지정된 동일 :

스포츠 토토 베트맨 분배기 생성 (

동일한 스포츠 토토 베트맨을 작성하여 스포츠 토토 베트맨과 고유 인덱스 모두에 대해 70% 채우기 요소를 지정합니다.

스포츠 토토 베트맨 분배기 생성 (

스포츠 토토 베트맨 생성서클두 개의 원이 겹치는 것을 방지하는 제외 제약 조건이 있습니다.

테이블 서클 생성 (

스포츠 토토 베트맨 생성Cinemasin TableSpacediskvol1:

스포츠 토토 베트맨 시네마 생성 (

복합 유형 및 유형 스포츠 토토 베트맨 작성 :

유형 생성 Employee_type (이름 텍스트, 급여 숫자);

범위 분할 된 스포츠 토토 베트맨 만들기 :

스포츠 토토 베트맨 측정 생성 (

파티션 키에 여러 열이있는 범위 파티션 스포츠 토토 베트맨 작성 :

스포츠 토토 베트맨 측정 생성 _year_month (

파티션 된 목록 만들기 테이블 :

스포츠 토토 베트맨 도시 생성 (

범위 파티션 테이블의 파티션 생성 :

스포츠 토토 베트맨 측정 생성 _y2016M07

파티션 키에 여러 열이있는 범위 파티션 테이블의 몇 가지 파티션을 만듭니다.

스포츠 토토 베트맨 측정 _ym_older 작성

목록 파티션 테이블의 파티션 생성 :

스포츠 토토 베트맨 Cities _ab 생성

자체가 더 분할 된 목록 파티션 테이블의 파티션을 작성한 다음 파티션을 추가합니다.

스포츠 토토 베트맨 Cities _ab 생성

호환성

the스포츠 토토 베트맨 생성명령은를 준수합니다SQL표준, 아래에 나열된 예외가 있습니다.

임시 테이블

비록 구문은임시 테이블 만들기SQL 표준의 것과 비슷합니다. 그 효과는 동일하지 않습니다. 표준에서 임시 테이블은 한 번만 정의되며 필요한 모든 세션에 자동으로 존재합니다 (빈 내용으로 시작).PostgreSQL대신 각 세션은 자체 문제를 요구합니다임시 테이블 만들기사용할 각 임시 테이블을 사용하는 명령. 이를 통해 다른 세션이 다른 목적으로 동일한 임시 테이블 이름을 사용할 수있는 반면, 표준의 접근 방식은 주어진 임시 테이블 이름의 모든 인스턴스가 동일한 테이블 구조를 갖도록 제한합니다..

임시 테이블의 동작에 대한 표준의 정의는 확인하다 (리 무시됩니다.PostgreSQL이 시점에서의 동작은 다른 여러 SQL 데이터베이스와 유사합니다.

SQL 표준은 또한 글로벌 및 로컬 임시 테이블을 구별합니다. 여기서 로컬 임시 테이블에는 각 세션 내에서 각 SQL 모듈에 대해 별도의 내용 세트가 있지만 정의는 여전히 세션에서 공유됩니다. 부터PostgreSQLSQL 모듈을 지원하지 않으므로이 차이는 관련이 없습니다PostgreSQL.

호환성을 위해PostgreSQL수락글로벌andLocal임시 테이블 선언의 키워드이지만 현재는 영향을 미치지 않습니다. 향후 버전의이므로 이러한 키워드 사용은 권장되지 않습니다.PostgreSQL그 의미에 대한보다 표준 준수 해석을 채택 할 수 있습니다.

theon Commit임시 표에 대한 조항은 SQL 표준과 비슷하지만 몇 가지 차이점이 있습니다. 인 경우on Commit조항이 생략되고 SQL은 기본 동작이임을 지정합니다on Commit Delete 행. 그러나 기본 동작의PostgreSQLis커밋 보존 행. 그만큼on Commit Drop옵션은 SQL에 존재하지 않습니다.

비 독창적 인 고유성 제약

언제고유 한또는기본 키제약 조건이 연기되지 않음,PostgreSQL행이 삽입되거나 수정 될 때마다 즉시 독창성을 확인합니다. SQL 표준은 진술이 끝날 때만 독창성을 시행해야한다고 말합니다.연기 가능그러나 연기되지 않음 (예 :처음에 즉시). 이것은 즉각적인 독창성 검사보다 훨씬 느리게 될 수 있습니다.

열 확인 제약 조건

SQL 표준은check열 제약 조건은 신청 된 열만 참조 할 수 있습니다. 오직check테이블 제약 조건은 여러 열을 참조 할 수 있습니다.PostgreSQL이 제한을 시행하지 않습니다. 그것은 열과 테이블 점검 제약 조건을 모두 취급합니다.

제외제약 조건

the제외제약 유형은 A입니다.PostgreSQL확장.

NULL 제약 조건

theNULL 제약(실제로는 제한되지 않은)입니다.PostgreSQL다른 데이터베이스 시스템과의 호환성을 위해 포함 된 SQL 표준으로의 확장 (및NOT NULL​​제약 조건). 모든 열의 기본이므로 그 존재는 단순히 소음입니다.

상속

다중 상속을 통한상속절은 A입니다.PostgreSQL언어 확장. SQL : 1999 및 나중에 다른 구문과 다른 의미를 사용하여 단일 상속을 정의합니다.PostgreSQL.

제로 컬럼 스포츠 토토 베트맨

PostgreSQL열이없는 스포츠 토토 베트맨을 생성 할 수 있습니다 (예 :스포츠 토토 베트맨 작성 foo ();). 이것은 SQL 표준의 확장으로 제로 컬럼 스포츠 토토 베트맨을 허용하지 않습니다.ALTER TABLE DROP 열,이 사양 제한을 ​​무시하는 것이 더 깨끗해 보입니다.

다중 ID 열

PostgreSQL스포츠 토토 베트맨에 둘 이상의 ID 열을 가질 수 있습니다. 표준은 스포츠 토토 베트맨에 최대 하나의 ID 열을 가질 수 있음을 지정합니다.삽입명령은 전체 명령문에 적용되는 하나의 재정의 절만을 지원하므로 동작이 다른 여러 인덱스 | 열을 갖는 것이 잘 지원되지 않습니다..

좋아요

좋아요조항은 SQL 표준에 존재합니다.PostgreSQL그것을 수락하는 것은 표준에 있지 않으며 일부 표준 옵션 중 일부는에 의해 구현되지 않습니다PostgreSQL.

with

thewith절은 A입니다.PostgreSQL확장; 스토리지 매개 변수 나 OID가 표준에 있지 않습니다.

스포츠 토토 베트맨 스페이스

thePostgreSQL스포츠 토토 베트맨 스페이스의 개념은 표준의 일부가 아닙니다. 따라서 조항스포츠 토토 베트맨 스페이스and색인 스포츠 토토 베트맨 스페이스 사용확장입니다.

입력 스포츠 토토 베트맨

유형 테이블은 SQL 표준의 하위 집합을 구현합니다. 표준에 따르면, 유형 테이블에는 기본 복합 유형에 해당하는 열과 다른 열이자체 참조 열. PostgreSQL은 이러한 자체 참조 열을 명시 적으로 지원하지 않지만 OID 기능을 사용하여 동일한 효과를 얻을 수 있습니다.

파티션 by

the파티션 by절은 A입니다.PostgreSQL확장.

파티션

the파티션절은 A입니다.PostgreSQL확장.