이 문서는 지원되지 않는 버전의 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 | Oids없이]
[커밋 보존 행 | 행 삭제 | 떨어지다  ]
[스포츠 토토 베트맨 스페이스TableSpace_name]

생성 [[Global | 로컬] 임시 | 온도 | 무도명] 스포츠 토토 베트맨 [존재하지 않으면]table_nameoftype_name [ (
  { column_name[옵션 포함] [column_constraint [ ... ] ]
    | table_constraint[, ...]
))]]
[범위 | 목록  (column_name | ( 표현) [CollateCollation ] [ opclass] [, ...])]
[ 와 함께 (Storage_Parameter [= value] [, ...]) | oids | Oids없이]
[커밋 보존 행 | 행 삭제 | 떨어지다  ]
[스포츠 토토 베트맨 스페이스TableSpace_name]

생성 [[Global | 로컬] 임시 | 온도 | 무도명] 스포츠 토토 베트맨 [존재하지 않으면]table_name파티션parent_table [ (
  { column_name[옵션 포함] [column_constraint [ ... ] ]
    | table_constraint[, ...]
)] valuePartition_Bound_spec[범위 | 목록  (column_name | ( 표현) [CollateCollation ] [ opclass] [, ...])]
[ 와 함께 (Storage_Parameter [= value] [, ...]) | oids | Oids없이]
[커밋 보존 행 | 행 삭제 | 떨어지다  ]
[스포츠 토토 베트맨 스페이스TableSpace_name ]

여기서column_constraintIS :[제약제약 _name]
null 아님 |
  널 |
  확인하다 (표현) [상속 없음] |
  기본default_expr|
  생성 항상 | 기본적으로 ID로 [(시퀀스_options) |
  고유한index_parameters|
  기본 키index_parameters|
  참조Reftable [ ( Refcolumn)] [일치 전체 | 부분적 일치 | 단순한 일치]
    [deleteAction] [업데이트Action]andtable_constraintis :[제약제약 _name]
 확인하다 (표현) [상속 없음] |
  고유한 (column_name [, ... ] ) index_parameters|
  기본 키 (column_name [, ... ] ) index_parameters|
  [사용 제외index_method ] ( Exclude_Elementwith운영자 [, ... ] ) index_parameters[where (술어)] |
  외국 키 (column_name[, ...]) 참조Reftable [ ( Refcolumn[, ...])]
    [전체 일치 | 부분적 일치 | 단순한 일치] [delete에서Action] [업데이트Action]andlike_optionIS :포함 | 제외 댓글 | 제약 | 기본값 | 신원 | 인덱스 | 통계 | 스토리지 | 모두andPartition_bound_specIS :in (Numeric_Literal | 16715_16731| 참 | 거짓 | null [, ...]) |
에서 (Numeric_Literal | String_Literal| 참 | 거짓 | MinValue | maxValue [, ...])
  에게 (Numeric_Literal | String_Literal| 참 | 거짓 | MinValue | maxValue [, ...])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 생성타이핑 스포츠 토토 베트맨, 지정된 복합 유형에서 구조를 가져옵니다 (선택적으로 스키마 자격이있는 이름). 입력 된 테이블은 그 유형에 연결되어 있습니다. 예를 들어 유형이 떨어지면 테이블이 삭제됩니다 (with드롭 타입 ... 캐스케이드).

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

파티션parent_tablePartition_Bound_spec

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

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

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

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

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

특별 값minvaluemaxValue열 파티션을 작성할 때 열의 값에 하단 또는 상한이 없음을 나타낼 때 사용될 수 있습니다. 예를 들어,를 사용하여 정의 된 파티션(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).

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

파티션은 그에 속하는 파티션 된 테이블과 동일한 열 이름과 유형을 가져야합니다. 부모가 지정된 경우OIDS와 함께그러면 모든 파티션에는 OID가 있어야합니다. 부모의 OID 열은 다른 열과 마찬가지로 모든 파티션에 의해 상속됩니다. 파티션 된 테이블의 열 이름 또는 유형에 대한 수정 또는 OID 열의 추가 또는 제거가 모든 파티션으로 자동 전파됩니다.check제약 조건은 모든 파티션에 의해 자동으로 상속되지만 개별 파티션은 추가를 지정할 수 있습니다check제약 조건; 부모와 동일한 이름과 조건을 가진 추가 제약 조건은 상위 제약 조건과 병합됩니다. 기본값은 각 파티션에 대해 별도로 지정 될 수 있습니다. 그러나 파티션 테이블을 통해 튜플을 삽입 할 때 파티션의 기본값은 적용되지 않습니다.

파티션 된 테이블에 삽입 된 행은 자동으로 올바른 파티션으로 라우팅됩니다. 적절한 파티션이 없으면 오류가 발생합니다. 또한 주어진 파티션에서 행을 업데이트하면 새로운 파티션 키 값으로 인해 다른 파티션으로 이동 해야하는 경우 오류가 발생합니다.

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

column_name

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

29999_30010

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

CollateCollation

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

상속 (parent_table [, ... ] )

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

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

동일한 열 이름이 두 개 이상의 상위 테이블에 존재하는 경우 각각의 부모 테이블에서 열의 데이터 유형이 일치하지 않는 한 오류 가보고됩니다. 충돌이 없으면 중복 열이 병합되어 새 테이블에서 단일 열을 형성합니다. 새 테이블의 열 이름 목록에 상속 된 열 이름이 포함 된 경우 데이터 유형은 상속 된 열과 마찬가지로 일치하고 열 정의가 하나로 병합되어야합니다. 새 테이블이 열의 기본값을 명시 적으로 지정하면이 기본값은 열의 상속 된 선언에서 기본값을 대체합니다. 그렇지 않으면 열에 대한 기본값을 지정하는 부모는 모두 동일한 기본값을 지정하거나 오류 가보고됩니다..

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

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

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

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

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

분할 된 테이블은 하위 테이블 (파티션이라고 함)으로 나뉘어지며 별도의스포츠 토토 베트맨 생성명령. 분할 된 테이블 자체는 비어 있습니다. 테이블에 삽입 된 데이터 행은 파티션 키의 열 또는 표현식의 값에 따라 파티션으로 라우팅됩니다. 기존 파티션이 새 행의 값과 일치하지 않으면 오류 가보고됩니다.

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

좋아요source_table [ like_option ... ]

the좋아요조항은 새 테이블이 모든 열 이름, 데이터 유형 및 NULL 제약 조건을 자동으로 복사하는 테이블을 지정합니다..

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

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

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

NOT NULL 제약 조건은 항상 새 테이블에 복사됩니다.check제약 조건은 만 복사됩니다제약 포함지정되어 있습니다. 열 제약 조건과 표 제한 사이에는 구별이 없습니다.

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

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

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

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

All 포함약식 형태의스토리지를 포함한 통계를 포함한 지수를 포함한 신원을 포함한 기본값을 포함한 제약 조건 포함 주석 포함.

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

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

제약 조건제약 _name

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

NOT NULL

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

NULL

열에는 널 값이 포함됩니다. 이것은 기본입니다.

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

check (표현) [상속 없음]

thecheck조항은 새로운 또는 업데이트 된 행이 삽입 또는 업데이트 작업을 위해 만족 해야하는 부울 결과를 생성하는 표현식을 지정합니다. 진실 또는 미지의 성공을 평가하는 표현. 인서트 또는 업데이트 작업 행이 잘못된 결과를 얻으면 오류 예외가 제기되고 삽입 또는 업데이트는 데이터베이스를 변경하지 않습니다. 열 제약 조건으로 지정된 확인 제약 조건은 열의 값 만 참조해야하며 테이블 제약 조건에 나타나는 표현식은 여러 열을 참조 할 수 있습니다..

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

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

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

기본값default_expr

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

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

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

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

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

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

고유 한(열 제약 조건)
고유 한 (column_name [, ... ] )(표 제한)

the고유 한제약 조건은 테이블의 하나 이상의 열로 구성된 그룹에 고유 한 값 만 포함 할 수 있음을 지정합니다. 고유 한 테이블 제약 조건의 동작은 독특한 열 제약 조건의 동작과 동일하며 여러 열에 걸쳐 추가 기능이 있습니다. 따라서 제약 조건은 두 행 이이 열 중 하나 이상에서 달라야한다는 것을 강화합니다.

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

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

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

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

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

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

A 추가기본 키제약 조건은 제약 조건에 사용 된 열 또는 열 그룹에 고유 한 BTREE 인덱스를 자동으로 생성합니다.

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

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

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

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

the술어테이블의 서브 세트에 제외 제약 조건을 지정할 수 있습니다. 내부적으로 이것은 부분 색인을 만듭니다. 술어 주변에는 괄호가 필요합니다.

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

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

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

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

행동 없음

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

제한

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

캐스케이드

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

SET NULL

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

기본값 설정

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

참조 된 열이 자주 변경되면 외국의 주요 제약 조건과 관련된 참조 작업을보다 효율적으로 수행 할 수 있도록 참조 열에 인덱스를 추가하는 것이 현명 할 수 있습니다.

연기 가능
연기가되지 않음

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

처음에 즉시
처음에 연기

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

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

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

ifoids = false지정 또는 묵시적, 새 테이블은 OID를 저장하지 않으며 삽입 된 행에 OID가 할당되지 않습니다. 이것은 OID 소비를 줄이고 32 비트 OID 카운터의 랩 어라운드를 연기하기 때문에 일반적으로 가치있는 것으로 간주됩니다. 카운터가 주변을 감싸면 OID는 더 이상 고유 한 것으로 가정 할 수 없으므로 상당히 덜 유용합니다. 또한 테이블에서 OID를 제외하면 디스크에 테이블에 필요한 공간이 줄당 4 바이트 (대부분의 기계에서)를 저장하여 성능이 약간 향상됩니다.

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

OIDS와 함께
OIDS없는

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

on Commit

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

보존 행

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

행 삭제

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

드롭

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

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

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

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

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

스토리지 매개 변수

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

FillFactor (Integer)

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

Parallel_Workers (Integer)

이것은이 표의 병렬 스캔을 돕는 데 사용해야하는 작업자의 수를 설정합니다. 설정되지 않으면 시스템은 관계 크기에 따라 값을 결정합니다. 플래너가 선택한 실제 근로자 수는 예를 들어의 설정으로 인해 적을 수 있습니다.max_worker_processes.

autovacuum_enabled, TOAST.AUTOVACUUM_ENABLED (부울)

특정 테이블의 Autovacuum 데몬을 활성화 또는 비활성화합니다. 사실이라면 Autovacuum 데몬이 자동으로 수행됩니다진공및/또는분석이 스포츠 토토 베트맨에서의 운영에서 논의 된 규칙에 따라섹션 24.1.6. 거짓 인 경우 트랜잭션 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, Toast.Autovacuum_vacuum_cost_delay (Integer)

표 당 값autovacuum_vacuum_cost_delay매개 변수.

autovacuum_vacuum_cost_limit, 토스트. Autovacuum_vacuum_cost_limit (Integer)

표 당 값autovacuum_vacuum_cost_limit매개 변수.

autovacuum_freeze_min_age, Toast.Autovacuum_freeze_min_age (Integer)

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

autovacuum_freeze_max_age, 토스트. Autovacuum_freeze_max_age (Integer)

타임 값에 대한 값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, Toast.Autovacuum_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, Toast.Autovacuum_multixact_freeze_max_age (정수)

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

autovacuum_multixact_freeze_table_age, Toast.Autovacuum_multixact_freeze_table_age (정수)

표 당 값VACUUM_MULTIXACT_FREEZE_TABLE_AGE매개 변수.

log_autovacuum_min_duration, 토스트 .LOG_AUTOVACUUM_MIN_DURATION (Integer)

표 당 값log_autovacuum_min_duration매개 변수.

user_catalog_table (부울)

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

노트

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

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

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

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

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

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

테이블 필름 생성 (
    코드 char (5) 제약 조건 FirstKey 1 차 키,
    타이틀 바르 차 (40) null,
    정수가 무효가되지 않았습니까?
    date_prod 날짜,
    Kind Varchar (10),
    렌 간격 시간에서 분
);

테이블 분배기 생성 (
     정수 기본 키를 기본적으로 ID로 생성 했습니까?
     이름 varchar (40) Not Null Check (name < '')
);

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

스포츠 토토 베트맨 생성 array_int (
    벡터 int [] []
);

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

테이블 필름 생성 (
    코드 char (5),
    제목 바르 차 (40),
    정수,
    date_prod 날짜,
    Kind Varchar (10),
    LEN 간격 시간에서 분,
    제약 제작 고유 (date_prod)
);

검사 열 제약 조건 정의 :

테이블 분배기 생성 (
    정수 확인 (100 명),
    이름 varchar (40)
);

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

테이블 분배기 생성 (
    정수,
    이름 varchar (40),
    제약 조건 CON1 확인 (did 100 및 name < '')
);

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

테이블 필름 생성 (
    코드 char (5),
    제목 바르 차 (40),
    정수,
    date_prod 날짜,
    Kind Varchar (10),
    LEN 간격 시간에서 분,
    제약 Code_title 기본 키 (코드, 제목)
);

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

테이블 분배기 생성 (
    정수,
    이름 varchar (40),
    기본 키 (DID)
);

테이블 분배기 생성 (
    정수 기본 키를했고
    이름 varchar (40)
);

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

테이블 분배기 생성 (
    Varchar (40) 기본 'Luso Films',
    Integer Default NextVal ( 'Emptentor_Serial'),
    modtime timestamp default current_timestamp
);

두 정의NOT NULL테이블의 열 제약 조건유통 업체, 그 중 하나는 명시 적으로 이름이 부여됩니다 :

테이블 분배기 생성 (
    정수 제약 조건 NO_NULL이 NULL이 아니 었습니다.
    varchar (40) 이름은 null이 아닙니다
);

이름열 :

테이블 분배기 생성 (
    정수,
    이름 Varchar (40) 독특합니다
);

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

테이블 분배기 생성 (
    정수,
    이름 varchar (40),
    독특한 (이름)
);

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

테이블 분배기 생성 (
    정수,
    이름 varchar (40),
    고유 (이름)와 함께 (fillfactor = 70)
))
with (fillfactor = 70);

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

테이블 서클 생성 (
    C 서클,
    GIST 사용 (& with &&) 제외
);

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

테이블 시네마 생성 (
        ID 시리얼,
        이름 텍스트,
        위치 텍스트
) 스포츠 토토 베트맨 스페이스 디스크 볼 1;

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

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

Employee_type의 테이블 직원 만들기 (
    기본 키 (이름),
    옵션이있는 급여 기본값 1000
);

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

테이블 측정 생성 (
    로그 데이트 날짜는 null이 아닙니다.
    PeakTemp int,
    단위 int
) 범위 별 파티션 (logdate);

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

테이블 측정 생성 _year_month (
    로그 데이트 날짜는 null이 아닙니다.
    PeakTemp int,
    단위 int
) 범위 별 파티션 (추출물 (로그 데이트 연도), 추출물 (로그 데이트에서 월));

파티션 된 목록 작성 테이블 :

테이블 도시 생성 (
    city_id bigserial not null,
    이름 텍스트가 null,
    인구 큰
) 목록 별 파티션 (왼쪽 (하단 (이름), 1));

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

스포츠 토토 베트맨 생성 _y2016M07
    측정 분할 (
    Unitales Default 0
) ( '2016-07-01')에서 ( '2016-08-01');의 값

파티션 키에 여러 열이있는 범위 파티셔닝 테이블의 몇 가지 파티션 생성 :

테이블 측정 _ym_older 작성
    측정 _year_month의 분할
    (MinValue, MinValue)에서 (2016, 11)까지의 값;

테이블 측정 _ym_y2016M11을 만듭니다
    측정 _year_month의 분할
    (2016, 11)에서 (2016, 12)의 값;

테이블 측정 _ym_y2016m12를 만듭니다
    측정 _year_month의 분할
    (2016, 12)에서 (2017, 01)의 값;

테이블 측정 _ym_y2017m01을 만듭니다
    측정 _year_month의 분할
    (2017, 01)에서 (2017, 02);의 값

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

스포츠 토토 베트맨 CITIES_AB 만들기
    도시의 분할 (
    제약 City_id_Nonzero Check (City_id! = 0)
) ( 'a', 'b')의 값에 대해);

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

테이블 CITIES_AB 만들기
    도시의 분할 (
    제약 City_id_Nonzero Check (City_id! = 0)
( 'a', 'b')의 값에 대한) 범위 별 파티션 (모집단);

테이블 Cities _ab_10000_TO_100000을 만듭니다
    (10000)에서 (100000)까지의 값에 대한 Cities_ab의 분할;

호환성

the스포츠 토토 베트맨 생성명령은에 부합합니다.SQL표준, 아래 예외가있는 표준.

임시 테이블

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

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

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

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

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

비 독창적 인 고유성 제약

언제고유 한또는기본 키제약 조건이 연기되지 않습니다.PostgreSQL행이 삽입되거나 수정 될 때마다 즉시 고유성을 확인합니다. SQL 표준은 진술이 끝날 때만 독창성을 시행해야한다고 말합니다. 예를 들어 단일 명령이 여러 키 값을 업데이트 할 때 차이를 만듭니다. 표준 호환 동작을 얻으려면 제약 조건을로 선언합니다.연기 가능그러나 연기되지 않음 (예 :처음에 즉시). 이것은 즉각적인 독창성 검사보다 훨씬 느리게 될 수 있습니다.

열 확인 제약 조건

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

제외제약

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

null 제약 조건

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

상속

다중 상속상속절은 A입니다.PostgreSQL언어 확장. SQL : 1999 및 나중에 다른 구문과 다른 의미를 사용하여 단일 상속을 정의합니다. SQL : 1999 스타일 상속은 아직 지원되지 않습니다.PostgreSQL.

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

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

다중 ID 열

PostgreSQL테이블에 둘 이상의 ID 열을 가질 수 있습니다. 표준은 테이블에 최대 하나의 ID 열을 가질 수 있음을 지정합니다. 이는 주로 스키마 변경 또는 마이그레이션을 수행하는 데 더 많은 유연성을 제공하기 위해 편안합니다.삽입명령은 전체 명령문에 적용되는 하나의 재정의 조항 만 지원하므로 동작이 다른 여러 신원 열을 갖는 것이 잘 지원되지 않습니다..

좋아요

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

with

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

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

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

입력 스포츠 토토 베트맨

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

파티션 by

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

파티션

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