이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 스포츠 토토 사이트 작성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

스포츠 토토 베트맨 생성

CREATE TABLE — 새 스포츠 토토 베트맨 정의

시놉시스

[ [ 글로벌 | 로컬 ]  임시 | 온도  | 기록되지 않음 ] 스포츠 토토 베트맨 [ 존재하지 않는 경우 ]스포츠 토토 베트맨_이름 ( [
  { 열_이름 데이터_유형[ 수집조합 ] [ column_constraint [ ... ] ]
    | table_constraint| 좋다source_table [ like_option... ] 
    [, ... ]
] )
[ 상속(parent_table[, ... ] ) ]
[  범위별 파티션 | 목록  (컬럼_이름 | ( 표현)  [ 대조조합 ] [ opclass] [, ... ] ) ]
[ 와 함께 (storage_parameter [= ] [, ... ] ) | 오이즈와 함께 | OIDS 없음]
[ 커밋 중  행 보존 | 행 삭제 | 떨어지다  ]
[스포츠 토토 베트맨스페이스스포츠 토토 베트맨스페이스_이름]

생성 [ [ 글로벌 | 로컬 ]  임시 | 온도  | 기록되지 않음 ] 스포츠 토토 베트맨 [ 존재하지 않는 경우 ]스포츠 토토 베트맨_이름OF유형_이름 [ (
  { 컬럼_이름[ 옵션 포함 ] [column_constraint [ ... ] ]
    | table_constraint[, ... ]
) ]
[  범위별 파티션 | 목록  (컬럼_이름 | ( 표현)  [ 대조조합 ] [ opclass] [, ... ] ) ]
[ 와 함께 (storage_parameter [= ] [, ... ] ) | 오이즈와 함께 | OIDS 없음]
[ 커밋 중  행 보존 | 행 삭제 | 떨어지다  ]
[스포츠 토토 베트맨스페이스스포츠 토토 베트맨스페이스_이름]

생성 [ [ 글로벌 | 로컬 ]  임시 | 온도  | 기록되지 않음 ] 스포츠 토토 베트맨 [ 존재하지 않는 경우 ]스포츠 토토 베트맨_이름파티션parent_table [ (
  { 컬럼_이름[ 옵션 포함 ] [column_constraint [ ... ] ]
    | table_constraint[, ... ]
) ] 값의 경우partition_bound_spec[ 파티션 기준  범위 | 목록  (열_이름 | ( 표현)  [ 대조조합 ] [ opclass] [, ... ] ) ]
[ 와 함께 (storage_parameter [= ] [, ... ] ) | 오이즈와 함께 | OIDS 없음]
[ 커밋 중  행 보존 | 행 삭제 | 떨어지다  ]
[스포츠 토토 베트맨스페이스스포츠 토토 베트맨스페이스_이름 ]

어디에서column_constraint다음은:[ 제약제약_이름]
 NULL이 아님 |
  NULL |
  확인하다 (표현) [ 상속 없음 ] |
  기본default_expr|
  생성됨  항상 | 기본적으로  ID로 [ (sequence_options) ] |
  고유한index_parameters|
  기본 키index_parameters|
  참조재조정 가능 [ ( refcolumn) ] [ 전체 일치 | 부분 일치 | 매치 심플 ]
    [ 삭제 중액션] [ 업데이트 중액션]그리고table_constraint다음은:[ 제약제약_이름]
 확인하다 (표현) [ 상속 없음 ] |
  고유한 (열_이름 [, ... ] ) index_parameters|
  기본 키(열_이름 [, ... ] ) index_parameters|
  제외 [ 사용index_method ] ( 제외_요소함께연산자 [, ... ] ) index_parameters[ 어디서 (술어) ] |
  외래 키(열_이름[, ... ] ) 참조재조정 가능 [ ( refcolumn[, ... ] ) ]
    [ 전체 일치 | 부분 일치 | 단순 일치 ] [ 삭제 시액션] [ 업데이트 중액션]그리고like_option다음과 같습니다:포함 | 제외   댓글 | 제약 | 기본값 | 정체성 | 인덱스 | 통계 | 저장 | 모두그리고partition_bound_spec다음과 같습니다:IN(numeric_literal | string_literal| 사실 | 거짓 | NULL  [, ...] ) |
에서 (numeric_literal | string_literal| 사실 | 거짓 | 최소값 | 최대값  [, ...] )
  에게 (numeric_literal | string_literal| 사실 | 거짓 | 최소값 | 최대값  [, ...] )index_parameters고유, 기본 키제외제약조건은 다음과 같습니다.[ 와 (storage_parameter [= ] [, ... ] ) ]
[ 인덱스 스포츠 토토 베트맨스페이스 사용스포츠 토토 베트맨스페이스_이름 ]

제외_요소안에제외제약조건은 다음과 같습니다.

{ 열_이름 | ( 표현 ) } [ opclass] [ ASC | DESC ] [ NULLS  첫 번째 | 마지막  ]

설명

스포츠 토토 베트맨 생성현재 데이터베이스에 처음에는 비어 있던 새로운 테이블을 생성합니다. 테이블은 명령을 실행하는 사용자가 소유하게 됩니다.

스키마 이름이 제공된 경우(예:스포츠 토토 베트맨 myschema.mytable 생성 ...) 그러면 지정된 스키마에 테이블이 생성됩니다. 그렇지 않으면 현재 스키마에 생성됩니다. 임시 테이블은 특수한 스키마에 존재하므로 임시 스포츠 토토 베트맨 생성 시 스키마 이름을 지정할 수 없습니다. 테이블 이름은 동일한 스키마에 있는 다른 테이블, 시퀀스, 인덱스, 뷰 또는 외부 테이블의 이름과 구별되어야 합니다.

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

선택적 제약 조건 절은 삽입 또는 업데이트 작업이 성공하기 위해 새 행이나 업데이트된 행이 충족해야 하는 제약 조건(테스트)을 지정합니다. 제약 조건은 다양한 방법으로 스포츠 토토 베트맨의 유효한 값 집합을 정의하는 데 도움이 되는 SQL 개체입니다.

제약조건을 정의하는 방법에는 스포츠 토토 베트맨 제약조건과 열 제약조건이라는 두 가지 방법이 있습니다. 열 제약 조건은 열 정의의 일부로 정의됩니다. 스포츠 토토 베트맨 제약 조건 정의는 특정 열에 연결되지 않으며 둘 이상의 열을 포함할 수 있습니다. 모든 열 제약 조건은 스포츠 토토 베트맨 제약 조건으로 작성될 수도 있습니다. 열 제약 조건은 제약 조건이 하나의 열에만 영향을 미칠 때 사용하기 위한 표기 편의일 뿐입니다.

테이블을 생성하려면 다음이 있어야 합니다.사용모든 열 유형 또는 해당 유형에 대한 권한OF절 각각.

매개변수

임시또는온도

지정되면 테이블이 임시 테이블로 생성됩니다. 임시 테이블은 세션이 끝날 때 또는 선택적으로 현재 트랜잭션이 끝날 때 자동으로 삭제됩니다(참조커밋 중아래). 동일한 이름을 가진 기존 영구 테이블은 스키마 한정 이름으로 참조되지 않는 한 임시 테이블이 존재하는 동안 현재 세션에 표시되지 않습니다. 임시 테이블에 생성된 모든 인덱스도 자동으로 임시 인덱스입니다.

autovacuum 데몬액세스할 수 없으므로 임시 테이블을 정리하거나 분석할 수 없습니다. 이러한 이유로 적절한 Vacuum 및 분석 작업은 세션 SQL 명령을 통해 수행되어야 합니다. 예를 들어, 임시 테이블이 복잡한 쿼리에 사용된다면 다음을 실행하는 것이 좋습니다.분석채워진 후 임시 테이블에.

선택적으로,글로벌또는로컬이전에 쓸 수 있음임시또는온도. 이는 현재로서는 아무런 차이가 없습니다.포스트그레SQL더 이상 사용되지 않습니다. 보다호환성.

기록되지 않음

지정되면 스포츠 토토 베트맨은 기록되지 않은 스포츠 토토 베트맨로 생성됩니다. 기록되지 않은 스포츠 토토 베트맨에 기록된 데이터는 미리 쓰기 로그에 기록되지 않습니다(참조범퍼카 토토 : 문서 : 10 : 30 장. 신뢰성과 쓰기 로그), 이는 일반 테이블보다 상당히 빠릅니다. 그러나 충돌로부터 안전하지는 않습니다. 충돌 또는 비정상 종료 후에 기록되지 않은 테이블이 자동으로 잘립니다. 로그되지 않은 테이블의 내용도 대기 서버에 복제되지 않습니다. 기록되지 않은 테이블에 생성된 모든 인덱스도 자동으로 기록 해제됩니다.

존재하지 않는 경우

동일한 이름을 가진 관계가 이미 존재하는 경우 오류를 발생시키지 마십시오. 이 경우 통지가 발행됩니다. 기존 관계가 생성되었을 관계와 유사하다는 보장은 없습니다.

스포츠 토토 베트맨_이름

생성될 스포츠 토토 베트맨의 이름(선택적으로 스키마 한정).

OF유형_이름

생성입력된 스포츠 토토 베트맨, 지정된 복합 유형(선택적으로 스키마 한정 이름)에서 구조를 가져옵니다. 유형이 지정된 스포츠 토토 베트맨은 해당 유형과 연결되어 있습니다. 예를 들어 유형이 삭제되면 스포츠 토토 베트맨도 삭제됩니다(드롭 유형 ... 캐스케이드).

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

파티션parent_table가치에 대해partition_bound_spec

테이블을 다음과 같이 생성합니다.파티션지정된 상위 스포츠 토토 베트맨의.

partition_bound_spec은 상위 테이블의 파티션 나누기 방법 및 파티션 키와 일치해야 하며 해당 상위 테이블의 기존 파티션과 겹쳐서는 안 됩니다.IN는 목록 분할에 사용되는 반면,발신그리고받는 사람범위 분할에 사용됩니다.

다음에 지정된 각 값partition_bound_spec은 리터럴입니다.NULL, MINVALUE또는MAXVALUE. 각 리터럴 값은 해당 파티션 키 열의 유형으로 강제할 수 있는 숫자 상수이거나 해당 유형에 유효한 입력인 문자열 리터럴이어야 합니다.

목록 파티션을 생성할 때,NULL파티션에서 파티션 키 열이 null이 되도록 허용함을 나타내기 위해 지정할 수 있습니다. 그러나 특정 상위 테이블에 대해 이러한 목록 파티션이 두 개 이상 있을 수 없습니다.NULL범위 파티션에는 지정할 수 없습니다.

범위 파티션을 생성할 때 하한은 다음으로 지정됨발신은 포함 범위인 반면, 상한은로 지정됩니다.받는 사람은 배타적 경계입니다. 즉,에 지정된 값은발신목록은 이 파티션에 해당하는 파티션 키 열의 유효한 값인 반면,받는 사람목록이 아닙니다. 이 문장은 행별 비교 규칙에 따라 이해되어야 합니다(섹션 9.23.5). 예를 들어, 주어진범위별 분할(x,y), 파티션 경계(1, 2)에서 (3, 4)로허용x=1아무거나y=2, x=2null이 아닌 모든 경우yx=3아무거나y<4.

특수 값MINVALUE그리고MAXVALUE은 열 값에 하한 또는 상한이 없음을 나타내기 위해 범위 파티션을 생성할 때 사용될 수 있습니다. 예를 들어, 다음을 사용하여 정의된 파티션은(MINVALUE)부터 (10)까지10보다 작은 모든 값과 다음을 사용하여 정의된 파티션을 허용합니다.(10)에서 (MAXVALUE)까지10보다 크거나 같은 모든 값을 허용합니다.

둘 이상의 열을 포함하는 범위 파티션을 생성할 때 다음을 사용하는 것도 합리적일 수 있습니다.MAXVALUE하한의 일부로 그리고MINVALUE상한의 일부로. 예를 들어, 다음을 사용하여 정의된 파티션은(0, 최대값)부터 (10, 최대값)첫 번째 파티션 키 열이 0보다 크고 10보다 작거나 같은 모든 행을 허용합니다. 마찬가지로 파티션은 다음을 사용하여 정의됩니다.FROM ('a', MINVALUE) TO ('b', MINVALUE)첫 번째 파티션 키 열이 "a"로 시작하는 모든 행을 허용합니다.

만약에 주의하세요MINVALUE또는MAXVALUE은 분할 경계의 한 열에 사용되며 모든 후속 열에 동일한 값을 사용해야 합니다. 예를 들어,(10, 최소값, 0)은 유효한 경계가 아닙니다. 당신은 작성해야합니다(10, 최소값, 최소값).

또한 다음과 같은 일부 요소 유형에 유의하세요.타임스탬프에는 저장할 수 있는 또 다른 값인 "무한대"라는 개념이 있습니다. 이건 다르다MINVALUE그리고MAXVALUE은 저장할 수 있는 실제 값이 아니라 값에 제한이 없음을 나타내는 방식입니다.MAXVALUE"무한대"를 포함한 다른 어떤 값보다 크다고 생각할 수 있으며MINVALUE"마이너스 무한대"를 포함한 다른 값보다 작습니다. 따라서 범위FROM ('무한대') TO (MAXVALUE)은(는) 빈 범위가 아닙니다. 정확히 하나의 값("무한대")을 저장할 수 있습니다.

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

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

일반적으로 테이블과 모든 상속 하위 항목에 영향을 미치는 TRUNCATE와 같은 작업은 모든 파티션에 계단식으로 적용되지만 개별 파티션에서 수행될 수도 있습니다. 다음을 사용하여 파티션을 삭제한다는 점에 유의하세요.드롭 스포츠 토토 베트맨수강이 필요합니다.접속 독점상위 스포츠 토토 베트맨을 잠급니다.

열_이름

새 테이블에 생성될 열의 이름.

데이터_유형

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

콜레이트조합

콜레이트절은 열에 데이터 정렬을 할당합니다(조합 가능한 데이터 유형이어야 함). 지정하지 않으면 열 데이터 유형의 기본 데이터 정렬이 사용됩니다.

상속됨(parent_table [, ... ] )

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

사용상속새 하위 테이블과 해당 상위 테이블 사이에 지속적인 관계를 생성합니다. 상위 테이블에 대한 스키마 수정 사항은 일반적으로 하위 테이블에도 전파되며 기본적으로 하위 테이블의 데이터는 상위 테이블 스캔에 포함됩니다.

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

확인제약조건은 기본적으로 열과 동일한 방식으로 병합됩니다. 여러 상위 테이블 및/또는 새 테이블 정의에 동일한 이름이 포함된 경우확인제약조건, 이러한 제약조건은 모두 동일한 검사 표현식을 가져야 합니다. 그렇지 않으면 오류가 보고됩니다. 이름과 표현식이 동일한 제약조건은 하나의 복사본으로 병합됩니다. 표시된 제약 조건상속 없음상위 항목은 고려되지 않습니다. 이름이 지정되지 않은확인새 테이블의 제약조건은 병합되지 않습니다. 왜냐하면 고유한 이름이 항상 선택되기 때문입니다.

칼럼저장설정은 상위 스포츠 토토 베트맨에서도 복사됩니다.

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

범위별 파티션 | 목록 (열_이름 | ( 표현 ) } [ opclass ] [, ...] )

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

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

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

좋아요source_table [ like_option ... ]

좋아요절은 새 스포츠 토토 베트맨이 모든 열 이름, 해당 데이터 유형 및 null이 아닌 제약 조건을 자동으로 복사하는 스포츠 토토 베트맨을 지정합니다.

달리상속, 생성이 완료된 후 새 테이블과 원본 테이블이 완전히 분리됩니다. 원본 테이블에 대한 변경 사항은 새 테이블에 적용되지 않으며 원본 테이블 스캔에 새 테이블의 데이터를 포함할 수 없습니다.

복사된 열 정의에 대한 기본 표현식은 다음 경우에만 복사됩니다.기본값 포함지정되었습니다. 기본 동작은 기본 표현식을 제외하여 새 테이블에 복사된 열의 기본값이 null이 되는 것입니다. 다음과 같은 데이터베이스 수정 함수를 호출하는 기본값 복사에 유의하세요.다음발, 원본 테이블과 새 테이블 사이에 기능적 연결을 생성할 수 있습니다.

복사된 열 정의의 모든 ID 사양은 다음 경우에만 복사됩니다.신원 포함지정되었습니다. 이전 테이블과 연결된 시퀀스와 별도로 새 테이블의 각 ID 열에 대해 새 시퀀스가 ​​생성됩니다.

null이 아닌 제약조건은 항상 새 스포츠 토토 베트맨에 복사됩니다.확인제약조건은 다음의 경우에만 복사됩니다.제약조건 포함지정되었습니다. 열 제약조건과 스포츠 토토 베트맨 제약조건은 구분되지 않습니다.

다음의 경우 확장 통계가 새 테이블에 복사됩니다.통계 포함지정되었습니다.

색인,기본 키, 고유제외원래 테이블의 제약 조건은 다음 경우에만 새 테이블에 생성됩니다.색인 포함이 지정되었습니다. 새 인덱스 및 제약 조건의 이름은 원본 이름 지정 방법에 관계없이 기본 규칙에 따라 선택됩니다. (이 동작은 새 인덱스에 대한 중복 이름 오류를 방지합니다.)

저장복사된 열 정의에 대한 설정은 다음 경우에만 복사됩니다.저장소 포함지정되었습니다. 기본 동작은 제외하는 것입니다.저장설정으로 인해 새 스포츠 토토 베트맨의 복사된 열은 유형별 기본 설정을 갖게 됩니다. 자세한 내용은저장설정, 참조PostgreSQL : 문서 : 10 : 67.2. 토와이즈 토토.

복사된 열, 제약 조건 및 색인에 대한 설명은 다음 경우에만 복사됩니다.댓글 포함지정되었습니다. 기본 동작은 주석을 제외하는 것입니다. 그러면 새 테이블의 복사된 열과 제약 조건에 주석이 없습니다.

모두 포함는의 축약형입니다.저장소를 포함한 통계를 포함하는 인덱스를 포함하는 ID를 포함하는 기본값을 포함하는 제약 조건을 포함하는 설명 포함.

그와는 다르다는 점에 유의하세요상속, 복사된 열 및 제약조건좋아요비슷한 이름의 열 및 제약 조건과 병합되지 않습니다. 동일한 이름이 명시적으로 지정되었거나 다른 이름으로 지정된 경우좋아요절, 오류가 발생했습니다.

좋아요절은 뷰, 외부 테이블 또는 복합 유형에서 열 정의를 복사하는 데에도 사용할 수 있습니다. 적용할 수 없는 옵션(예:색인 포함보기에서)는 무시됩니다.

제약제약조건_이름

열 또는 테이블 제약조건에 대한 선택적인 이름입니다. 제약 조건을 위반하면 오류 메시지에 제약 조건 이름이 표시되므로 다음과 같은 제약 조건 이름이 표시됩니다.col은 양수여야 합니다.클라이언트 응용 프로그램에 유용한 제약 정보를 전달하는 데 사용할 수 있습니다. (공백이 포함된 제약 조건 이름을 지정하려면 큰따옴표가 필요합니다.) 제약 조건 이름을 지정하지 않으면 시스템에서 이름을 생성합니다.

NULL이 아님

열에는 Null 값이 포함될 수 없습니다.

NULL

열에는 null 값이 포함될 수 있습니다. 이것이 기본값입니다.

이 절은 비표준 SQL 데이터베이스와의 호환성을 위해서만 제공됩니다. 새로운 애플리케이션에서는 사용이 권장되지 않습니다.

확인(표현) [ 상속 없음 ]

확인절은 삽입 또는 업데이트 작업이 성공하기 위해 새 행 또는 업데이트된 행이 충족해야 하는 부울 결과를 생성하는 표현식을 지정합니다. TRUE 또는 UNKNOWN으로 평가되는 표현식은 성공합니다. 삽입 또는 업데이트 작업의 행에서 FALSE 결과가 생성되면 오류 예외가 발생하고 삽입 또는 업데이트가 데이터베이스를 변경하지 않습니다. 열 제약 조건으로 지정된 검사 제약 조건은 해당 열의 값만 참조해야 하는 반면, 테이블 제약 조건에 나타나는 표현식은 여러 열을 참조할 수 있습니다.

현재,확인식은 하위 쿼리를 포함할 수 없으며 현재 행의 열 이외의 변수를 참조할 수 없습니다(참조섹션 5.3.1). 시스템 열스포츠 토토 베트맨로이드참조될 수 있지만 다른 시스템 열은 참조될 수 없습니다.

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

스포츠 토토 베트맨에 여러 개가 있는 경우확인제약조건, 확인 후 이름별 알파벳순으로 각 행에 대해 테스트됩니다.NULL이 아님제약조건. (포스트그레SQL9.5 이전 버전에서는 특정 실행 명령을 따르지 않았습니다.확인제약조건.)

기본값default_expr

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

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

생성됨 항상 | 기본적으로 ID로 [ (sequence_options ) ]

이 절은 열을 다음과 같이 생성합니다.신원 열. 여기에는 암시적 시퀀스가 ​​첨부되며 새 행의 열에는 할당된 시퀀스의 값이 자동으로 포함됩니다. 이러한 열은 암시적으로NULL이 아님.

조항항상그리고기본값으로시퀀스 값이 사용자가 지정한 값보다 우선적으로 어떻게 부여되는지 결정삽입문장. 만약에항상이 지정되면 사용자 지정 값은 다음과 같은 경우에만 허용됩니다.삽입문이 지정함시스템 값 재정의. 만약에기본값으로이 지정되면 사용자가 지정한 값이 우선 적용됩니다. 보다삽입43046_43070복사명령, 이 설정에 관계없이 항상 사용자가 지정한 값이 사용됩니다.)

선택사항sequence_options절을 사용하여 시퀀스 옵션을 재정의할 수 있습니다. 보다시퀀스 생성자세한 내용은.

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

고유제약조건은 테이블의 하나 이상의 열 그룹이 고유한 값만 포함할 수 있음을 지정합니다. 고유 테이블 제약 조건의 동작은 고유 열 제약 조건의 동작과 동일하며 여러 열을 확장할 수 있는 추가 기능이 있습니다. 따라서 제약 조건은 두 행 중 적어도 하나의 열이 달라야 함을 강제합니다.

고유 제약조건의 목적상 null 값은 동일한 것으로 간주되지 않습니다.

각 고유 제약 조건은 테이블에 정의된 다른 고유 또는 기본 키 제약 조건에 의해 명명된 열 집합과 다른 열 집합의 이름을 지정해야 합니다. (그렇지 않으면 중복된 고유 제약 조건이 삭제됩니다.)

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

기본 키제약조건은 테이블의 열이 고유한(중복되지 않은) Null이 아닌 값만 포함할 수 있음을 지정합니다. 열 제약조건이든 테이블 제약조건이든 관계없이 테이블에는 하나의 기본 키만 지정할 수 있습니다.

기본 키 제약 조건은 동일한 테이블에 대해 정의된 고유 제약 조건에 의해 명명된 열 집합과 다른 열 집합의 이름을 지정해야 합니다. (그렇지 않으면 고유 제약 조건이 중복되어 삭제됩니다.)

기본 키다음의 조합과 동일한 데이터 제약 조건을 적용합니다.고유그리고NULL이 아님. 그러나 열 집합을 기본 키로 식별하면 스키마 설계에 대한 메타데이터도 제공됩니다. 기본 키는 다른 테이블이 이 열 집합을 행의 고유 식별자로 사용할 수 있음을 의미하기 때문입니다.

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

제외 [ 사용index_method ] ( 제외_요소WITH연산자 [, ... ] ) index_parameters[ 어디서 (술어 ) ]

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

제외 제약 조건은 색인을 사용하여 구현되므로 지정된 각 연산자는 적절한 연산자 클래스와 연결되어야 합니다(참조토토 캔 : 문서 : 10 : 11.9. 운영자 수업 및 운영자 가족47322_47354index_method. 연산자는 교환 가능해야 합니다. 각제외_요소선택적으로 연산자 클래스 및/또는 순서 옵션을 지정할 수 있습니다. 자세한 내용은 아래에 자세히 설명되어 있습니다.색인 생성.

액세스 방법이 다음을 지원해야 합니다.amgettuple(참조PostgreSQL : 문서 : 10 : 60 장. 색인 사설 토토 방법 인터페이스 정의); 현재 이것은 의미합니다사용할 수 없습니다. 허용되기는 하지만 제외 제약 조건이 있는 B-트리 또는 해시 인덱스를 사용하는 것은 별 의미가 없습니다. 이는 일반 고유 제약 조건이 더 잘 수행하지 못하는 작업을 수행하지 않기 때문입니다. 따라서 실제로 액세스 방법은 항상 다음과 같습니다.GiST또는SP-GiST.

술어테이블의 하위 집합에 대한 제외 제약 조건을 지정할 수 있습니다. 내부적으로 이는 부분 인덱스를 생성합니다. 술어 주위에는 괄호가 필요합니다.

참조재조정 가능 [ ( refcolumn) ] [ 일치일치 유형] [ 삭제 중액션] [ 업데이트 중액션 ](열 제약)
외래 키(열_이름[, ... ] ) 참조재조정 가능 [ ( refcolumn[, ... ] ) ] [ 일치일치 유형] [ 삭제 중액션] [ 업데이트 중액션 ](테이블 제약 조건)

이 절은 외래 키 제약 조건을 지정합니다. 이는 새 테이블의 하나 이상의 열 그룹이 참조 테이블의 일부 행에 있는 참조 열의 값과 일치하는 값만 포함해야 함을 의미합니다. 만약refcolumn목록이 생략되었습니다. 기본 키는재조정 가능이 사용됩니다. 참조된 열은 참조된 테이블의 지연 불가능한 고유 또는 기본 키 제약 조건의 열이어야 합니다. 사용자는 다음을 수행해야 합니다.참조50028_50226

참조 열에 삽입된 값은 지정된 일치 유형을 사용하여 참조 테이블 및 참조 열의 값과 일치됩니다. 세 가지 일치 유형이 있습니다.전체 일치, 부분 일치간단한 일치(기본값).전체 일치모든 외래 키 열이 null이 아닌 한 여러 열 외래 키의 한 열이 null이 되는 것을 허용하지 않습니다. 모두 null인 경우 해당 행은 참조된 테이블에서 일치 항목을 가질 필요가 없습니다.간단한 일치외래 키 열이 null이 되도록 허용합니다. 그 중 null이 있으면 해당 행은 참조된 테이블에서 일치 항목을 가질 필요가 없습니다.부분 일치아직 구현되지 않았습니다. (물론,NULL이 아님이런 경우가 발생하는 것을 방지하기 위해 참조 열에 제약 조건을 적용할 수 있습니다.)

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

조치 없음

삭제 또는 업데이트로 인해 외래 키 제약 조건 위반이 발생함을 나타내는 오류가 발생합니다. 제약 조건이 연기된 경우 참조 행이 여전히 존재하면 제약 조건 확인 시 이 오류가 생성됩니다. 이것이 기본 동작입니다.

제한

삭제 또는 업데이트로 인해 외래 키 제약 조건 위반이 발생함을 나타내는 오류가 발생합니다. 이는 다음과 같습니다.조치 없음단, 검사는 연기할 수 없습니다.

캐스케이드

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

NULL로 설정

참조 열을 null로 설정하십시오.

기본값으로 설정

참조 열을 기본값으로 설정합니다. (참조 테이블에는 기본값과 일치하는 행이 있어야 합니다. null이 아닌 경우에는 작업이 실패합니다.)

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

지연 가능
지연할 수 없음

이것은 제약조건을 연기할 수 있는지 여부를 제어합니다. 연기할 수 없는 제약 조건은 모든 명령 후에 즉시 확인됩니다. 연기 가능한 제약 조건 확인은 트랜잭션이 끝날 때까지 연기할 수 있습니다(제약조건 설정명령).지연할 수 없음기본값입니다. 현재는 만고유, 기본 키, 제외참조(외래 키) 제약 조건은 이 조항을 허용합니다.NULL이 아님그리고확인제약조건은 연기할 수 없습니다. 지연 가능한 제약 조건은 충돌 중재자로 사용할 수 없습니다.삽입을 포함하는 문충돌 시 업데이트를 하세요절.

처음에는 즉시
처음에는 연기됨

제약이 연기 가능한 경우, 이 절은 제약을 확인하는 기본 시간을 지정합니다. 제약 조건이 다음과 같은 경우처음에는 즉시, 각 문 다음에 확인됩니다. 이것이 기본값입니다. 제약 조건이 다음과 같은 경우처음에는 연기됨, 트랜잭션이 끝날 때만 확인됩니다. 제약 조건 확인 시간은 다음을 사용하여 변경할 수 있습니다.제약조건 설정명령.

함께 (storage_parameter [= ] [, ... ] )

이 절은 테이블 또는 인덱스에 대한 선택적 저장 매개변수를 지정합니다. 보다저장소 매개변수더 많은 정보를 원하시면. 그만큼함께테이블에 대한 절에는 다음도 포함될 수 있습니다.OIDS=TRUE(또는 그냥OIDS) 새 스포츠 토토 베트맨의 행에 OID(객체 식별자)가 할당되도록 지정하거나OIDS=FALSE행에 OID가 없어야 함을 지정합니다. 만약에OIDS지정되지 않았습니다. 기본 설정은 다음에 따라 다릅니다.default_with_oids구성 매개변수. (새 테이블이 OID가 있는 테이블에서 상속되는 경우OIDS=TRUE명령이 다음과 같이 표시되더라도 강제됩니다.OIDS=FALSE.)

만약OIDS=FALSE이 지정되거나 암시되면 새 테이블은 OID를 저장하지 않으며 삽입된 행에 대해 OID가 할당되지 않습니다. 이는 OID 소비를 줄여 32비트 OID 카운터의 랩어라운드를 연기하므로 일반적으로 가치 있는 것으로 간주됩니다. 카운터가 순환되면 OID는 더 이상 고유한 것으로 간주될 수 없으므로 유용성이 크게 떨어집니다. 또한 테이블에서 OID를 제외하면 디스크에 테이블을 저장하는 데 필요한 공간이 행당 4바이트씩 줄어들어(대부분의 시스템에서) 성능이 약간 향상됩니다.

테이블이 생성된 후 테이블에서 OID를 제거하려면 다음을 사용하세요.스포츠 토토 베트맨 변경.

OIDS 포함
OIDS 제외

다음과 동등한 구식 구문입니다.WITH(OIDS)그리고WITH (OIDS=FALSE)입니다. 둘 다 제공하고 싶다면OIDS설정 및 저장 매개변수를 사용하려면 다음을 사용해야 합니다.함께 ( ... )구문; 위를 참조하세요.

커밋 중

트랜잭션 블록 끝의 임시 테이블 동작은 다음을 사용하여 제어할 수 있습니다.커밋 중. 세 가지 옵션은 다음과 같습니다.

행 보존

트랜잭션 종료 시 특별한 조치가 취해지지 않습니다. 이것이 기본 동작입니다.

행 삭제

임시 테이블의 모든 행은 각 트랜잭션 블록이 끝날 때 삭제됩니다. 기본적으로 자동잘라내기각 커밋에서 수행됩니다. 파티션을 나눈 테이블에서 사용할 경우 해당 파티션에 계단식으로 연결되지 않습니다.

드롭

임시 테이블은 현재 트랜잭션 블록의 끝에서 삭제됩니다. 파티션을 나눈 테이블에서 사용할 경우 이 작업은 해당 파티션을 삭제하고 상속 하위 항목이 있는 테이블에서 사용할 경우 종속 하위 항목을 삭제합니다.

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

스포츠 토토 베트맨스페이스_이름은 새 테이블이 생성될 스포츠 토토 베트맨스페이스의 이름입니다. 지정하지 않은 경우,default_tablespace상담되었거나temp_tablespaces테이블이 임시 테이블인 경우.

인덱스 스포츠 토토 베트맨스페이스 사용스포츠 토토 베트맨스페이스_이름

이 절은 다음과 연관된 인덱스가 있는 스포츠 토토 베트맨스페이스를 선택할 수 있도록 허용합니다.고유, 기본 키또는제외제약조건이 생성됩니다. 지정하지 않은 경우,default_tablespace상담을 받거나temp_tablespaces테이블이 임시 테이블인 경우.

저장소 매개변수

함께절에서 지정할 수 있음저장 매개변수스포츠 토토 베트맨 및 a와 연관된 인덱스의 경우고유, 기본 키또는제외제약. 인덱스의 저장소 매개변수는 다음 문서에 설명되어 있습니다.색인 생성. 현재 테이블에 사용할 수 있는 저장 매개변수는 다음과 같습니다. 표시된 것처럼 이러한 많은 매개변수에는 접두사가 붙은 동일한 이름을 가진 추가 매개변수가 있습니다.토스트., 스포츠 토토 베트맨의 보조 동작을 제어합니다.토스트테이블(있는 경우)(참조PostgreSQL : 문서 : 10 : 67.2. 토와이즈 토토TOAST에 대한 자세한 내용을 확인하세요). 테이블 매개변수 값이 설정되고 이에 상응하는 경우토스트.매개변수가 아닌 경우 TOAST 테이블은 테이블의 매개변수 값을 사용합니다. 파티션을 나눈 테이블에 대해 이러한 매개변수를 지정하는 것은 지원되지 않지만 개별 리프 파티션에 대해서는 지정할 수 있습니다.

채우기 요소 (정수)

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

parallel_workers (정수)

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

autovacuum_enabled, toast.autovacuum_enabled (부울)

특정 테이블에 대한 autovacuum 데몬을 활성화 또는 비활성화합니다. true인 경우 autovacuum 데몬이 자동으로 수행됩니다.진공및/또는분석에서 설명한 규칙에 따라 이 테이블에 대한 작업섹션 24.1.6. false인 경우 트랜잭션 ID 랩어라운드를 방지하는 경우를 제외하고 이 테이블은 자동으로 진공화되지 않습니다. 보다섹션 24.1.5랩어라운드 방지에 대해 자세히 알아보세요. 다음과 같은 경우 autovacuum 데몬은 전혀 실행되지 않습니다(트랜잭션 ID 랩어라운드 방지 제외).자동 진공매개변수가 거짓입니다. 개별 테이블의 스토리지 매개변수를 설정해도 이를 재정의하지 않습니다. 따라서 이 저장 매개변수를 다음과 같이 명시적으로 설정하는 데에는 거의 의미가 없습니다., 오직거짓.

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 (정수)

다음에 대한 스포츠 토토 베트맨당 값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, 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, toast.log_autovacuum_min_duration (정수)

다음에 대한 스포츠 토토 베트맨당 값log_autovacuum_min_duration매개변수.

user_catalog_table (부울)

논리적 복제를 위해 테이블을 추가 카탈로그 테이블로 선언하십시오. 보다섹션 48.6.270250_70312

참고

새 응용 프로그램에서 OID를 사용하는 것은 권장되지 않습니다. 가능하다면 ID 열이나 기타 시퀀스 생성기를 테이블의 기본 키로 사용하는 것이 좋습니다. 그러나 애플리케이션이 OID를 사용하여 테이블의 특정 행을 식별하는 경우에는 고유 제약 조건을 생성하는 것이 좋습니다.oid70757_71002스포츠 토토 베트맨로이드및 행 OID를 목적으로 합니다.

사용OIDS=FALSE기본 키가 없는 테이블에는 권장되지 않습니다. OID나 고유 데이터 키가 없으면 특정 행을 식별하기 어렵기 때문입니다.

포스트그레SQL각 고유 제약조건 및 기본 키 제약조건에 대한 인덱스를 자동으로 생성하여 고유성을 강화합니다. 따라서 기본 키 열에 대해 명시적으로 인덱스를 생성할 필요가 없습니다. (보다색인 생성자세한 내용은.)

고유 제약 조건과 기본 키는 현재 구현에서 상속되지 않습니다. 이로 인해 상속과 고유 제약 조건의 조합이 제대로 작동하지 않게 됩니다.

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

스포츠 토토 베트맨 생성영화그리고 테이블배포자:

테이블 영화 만들기(
    코드 char(5) CONSTRAINT firstkey PRIMARY KEY,
    제목 varchar(40) NOT NULL,
    정수가 NULL이 아니었나요?
    date_prod 날짜,
    종류 varchar(10),
    len 간격 시간에서 분까지
);

CREATE TABLE 배포자(
     정수 PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
     이름 varchar(40) NOT NULL CHECK (이름 < '')
);

2차원 배열로 테이블을 생성하세요:

CREATE TABLE array_int(
    벡터 정수[][]
);

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

테이블 영화 만들기(
    코드 문자(5),
    제목 varchar(40),
    정수를 했고,
    date_prod 날짜,
    종류 varchar(10),
    len 간격 시간에서 분,
    CONSTRAINT 생산 UNIQUE(date_prod)
);

검사 열 제약 조건 정의:

테이블 배포자 생성(
    정수 CHECK를 수행했습니다(100보다 컸음).
    이름 varchar(40)
);

검사 테이블 제약조건 정의:

테이블 배포자 생성(
    정수를 했고,
    이름 varchar(40),
    CONSTRAINT con1 CHECK (did  100 AND 이름 < '')
);

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

테이블 영화 만들기(
    코드 문자(5),
    제목 varchar(40),
    정수를 했고,
    date_prod 날짜,
    종류 varchar(10),
    len 간격 시간에서 분,
    CONSTRAINT code_title PRIMARY KEY(코드,제목)
);

테이블에 대한 기본 키 제약조건 정의배포자. 다음 두 예는 동일합니다. 첫 번째는 테이블 제약 조건 구문을 사용하고 두 번째는 열 제약 조건 구문을 사용합니다.

테이블 배포자 생성(
    정수를 했고,
    이름 varchar(40),
    기본 키(했었습니다)
);

CREATE TABLE 배포자(
    정수 PRIMARY KEY를 수행했습니다.
    이름 varchar(40)
);

열에 리터럴 상수 기본값 할당이름, 컬럼의 기본값을 정렬했어요시퀀스 개체의 다음 값을 선택하여 생성하고 기본값을 다음으로 설정합니다.모드타임행이 삽입되는 시간:

테이블 배포자 생성(
    이름 varchar(40) DEFAULT 'Luso Films',
    정수 DEFAULT nextval('distributors_serial')을 수행했습니다.
    modtime 타임스탬프 DEFAULT current_timestamp
);

2개 정의NULL이 아님테이블의 열 제약 조건배포자, 그 중 하나에는 명시적으로 이름이 지정됩니다.

테이블 배포자 생성(
    정수 CONSTRAINT no_null이 NULL이 아니었습니다.
    이름 varchar(40) NOT NULL
);

에 대한 고유 제약 조건 정의이름열:

테이블 배포자 생성(
    정수를 했고,
    이름 varchar(40) 고유
);

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

테이블 배포자 생성(
    정수를 했고,
    이름 varchar(40),
    고유(이름)
);

테이블과 고유 인덱스 모두에 대해 70% 채우기 비율을 지정하여 동일한 테이블을 생성합니다.

테이블 배포자 생성(
    정수를 했고,
    이름 varchar(40),
    UNIQUE(이름) WITH (채우기 비율=70)
)
WITH(채우기 비율=70);

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

테이블 서클 생성(
    c 원,
    요점을 사용하여 제외(c WITH &&)
);

스포츠 토토 베트맨 생성영화관스포츠 토토 베트맨스페이스에서디스크볼1:

테이블 영화관 만들기(
        ID 일련 번호,
        이름 텍스트,
        위치 텍스트
) 스포츠 토토 베트맨스페이스 diskvol1;

복합 유형 및 유형이 지정된 스포츠 토토 베트맨을 생성합니다:

CREATE TYPE Employee_type AS (이름 텍스트, 급여 숫자);

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

범위로 분할된 스포츠 토토 베트맨 생성:

테이블 측정 생성(
    logdate 날짜가 null이 아닙니다.
    피크 온도 정수,
    단위 판매 정수
) 범위별 파티션(logdate);

파티션 키에 여러 열이 있는 범위로 분할된 테이블을 생성합니다:

CREATE TABLE 측정_년_월(
    logdate 날짜가 null이 아닙니다.
    피크 온도 정수,
    단위 판매 정수
) 범위별 파티션 (추출(로그 날짜에서 연도), 추출(로그 날짜에서 월));

목록으로 분할된 스포츠 토토 베트맨 생성:

테이블 도시 생성(
    city_id bigserial이 null이 아닙니다.
    이름 텍스트가 null이 아닙니다.
    인구 규모
) PARTITION BY LIST (왼쪽(하위(이름), 1));

범위로 분할된 테이블의 파티션 생성:

스포츠 토토 베트맨 생성 측정_y2016m07
    측정 부분(
    단위판매 기본값 0
) ('2016-07-01')부터 ('2016-08-01')까지의 값에 대해;

파티션 키에 여러 열이 있는 범위로 분할된 테이블의 몇 가지 파티션을 생성합니다:

스포츠 토토 베트맨 생성 측정_ym_older
    측정_년_월 부분
    (MINVALUE, MINVALUE)부터 (2016, 11)까지의 값에 대해;

테이블 만들기 측정_ym_y2016m11
    측정_년_월 부분
    (2016, 11)부터 (2016, 12)까지의 값에 대해;

테이블 만들기 측정_ym_y2016m12
    측정_년_월 부분
    (2016, 12)부터 (2017, 01)까지의 값에 대해;

테이블 만들기 측정_ym_y2017m01
    측정_년_월 부분
    (2017, 01)부터 (2017, 02)까지의 값에 대해;

목록으로 분할된 테이블의 파티션 생성:

CREATE TABLE 도시_ab
    도시 분할(
    CONSTRAINT city_id_nonzero 확인 (city_id != 0)
) ('a', 'b')의 값에 대해;

자체적으로 더 분할된 목록 분할 테이블의 파티션을 생성한 다음 여기에 파티션을 추가하십시오:

CREATE TABLE 도시_ab
    도시 분할(
    CONSTRAINT city_id_nonzero 확인 (city_id != 0)
) 범위별 ('a', 'b') 파티션의 값(인구);

테이블 만들기 city_ab_10000_to_100000
    (10000)에서 (100000)까지의 값에 대한 city_ab의 분할;

호환성

스포츠 토토 베트맨 생성명령은 다음을 준수합니다SQL표준, 아래 나열된 예외는 있음.

임시 테이블

비록 구문은임시 스포츠 토토 베트맨 생성은 SQL 표준과 유사하지만 효과는 동일하지 않습니다. 표준에서는 임시 테이블이 한 번만 정의되고 필요한 모든 세션에 자동으로 존재합니다(빈 내용으로 시작).PostgreSQL대신 각 세션에서 자체적으로 실행해야 합니다.임시 스포츠 토토 베트맨 생성79751_80013

임시 테이블의 동작에 대한 표준 정의는 널리 무시됩니다.포스트그레SQL80143_80221

SQL 표준은 또한 전역 임시 테이블과 로컬 임시 테이블을 구별합니다. 여기서 로컬 임시 테이블은 각 세션 내의 각 SQL 모듈에 대해 별도의 콘텐츠 세트를 가지지만 그 정의는 여전히 세션 전체에서 공유됩니다. 부터포스트그레SQLSQL 모듈을 지원하지 않습니다. 이 구별은 다음과 관련이 없습니다.포스트그레SQL.

호환성을 위해,포스트그레SQL수락하겠습니다글로벌그리고로컬임시 테이블 선언에 키워드가 포함되어 있지만 현재는 아무런 효과가 없습니다. 이후 버전의 이후로 이러한 키워드를 사용하지 않는 것이 좋습니다.포스트그레SQL그 의미에 대해 보다 표준을 준수하는 해석을 채택할 수 있습니다.

커밋 중81097_81194커밋 중절이 생략되었습니다. SQL은 기본 동작을 다음과 같이 지정합니다.ON 커밋 행 삭제. 그러나 기본 동작은포스트그레SQL이다커밋 행 보존 중. 그만큼커밋 삭제 중옵션이 SQL에 존재하지 않습니다.

비지연 고유성 제약 조건

언제고유또는기본 키제약조건은 연기할 수 없습니다.포스트그레SQL행이 삽입되거나 수정될 때마다 즉시 고유성을 확인합니다. SQL 표준에 따르면 고유성은 명령문 끝에서만 적용되어야 합니다. 예를 들어 단일 명령이 여러 키 값을 업데이트하는 경우 이는 차이를 만듭니다. 표준을 준수하는 동작을 얻으려면 제약 조건을 다음과 같이 선언하세요.지연 가능그러나 연기되지는 않음(예:처음에는 즉시). 이는 즉각적인 고유성 검사보다 훨씬 느릴 수 있다는 점에 유의하세요.

열 확인 제약 조건

SQL 표준에 따르면확인열 제약조건은 적용되는 열만 참조할 수 있습니다. 오직확인테이블 제약조건은 여러 열을 참조할 수 있습니다.포스트그레SQL이 제한을 적용하지 않습니다. 열과 테이블 검사 제약 조건을 동일하게 처리합니다.

제외제약

제외제약 유형은 a입니다.포스트그레SQL확장.

NULL 제약

NULL 제약(실제로는 비제약)은포스트그레SQL일부 다른 데이터베이스 시스템과의 호환성을 위해 포함된 SQL 표준에 대한 확장(및 다음과의 대칭을 위해NULL이 아님제약). 모든 열의 기본값이므로 그 존재는 단순히 노이즈일 뿐입니다.

상속

다음을 통한 다중 상속상속절은 a입니다포스트그레SQL언어 확장. SQL:1999 이상에서는 다른 구문과 의미를 사용하여 단일 상속을 정의합니다. SQL:1999 스타일 상속은 아직 지원되지 않습니다.포스트그레SQL.

0열 스포츠 토토 베트맨

포스트그레SQL열이 없는 테이블을 생성할 수 있습니다(예:테이블 foo() 생성;). 이는 열이 없는 테이블을 허용하지 않는 SQL 표준의 확장입니다. 열이 없는 테이블은 그 자체로는 그다지 유용하지 않지만 이를 허용하지 않으면 이상한 특수 사례가 생성됩니다.테이블 드롭 열 변경, 따라서 이 사양 제한을 ​​무시하는 것이 더 깔끔해 보입니다.

다중 ID 열

포스트그레SQL테이블에 둘 이상의 ID 열이 있을 수 있습니다. 표준은 테이블이 최대 하나의 ID 열을 가질 수 있음을 지정합니다. 이는 주로 스키마 변경 또는 마이그레이션 수행에 더 많은 유연성을 제공하기 위해 완화되었습니다. 참고하세요삽입명령은 전체 문에 적용되는 재정의 절을 하나만 지원하므로 동작이 다른 여러 ID 열을 갖는 것은 제대로 지원되지 않습니다.

좋아요

그 동안좋아요절은 SQL 표준에 존재하며, 그 중 많은 옵션은PostgreSQL표준에 포함되어 있지 않으며 표준 옵션 중 일부가 구현되지 않았으므로 수락합니다.포스트그레SQL.

함께

함께절은 a입니다포스트그레SQL확장; 저장소 매개변수나 OID 모두 표준에 없습니다.

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

포스트그레SQL스포츠 토토 베트맨스페이스 개념은 표준의 일부가 아닙니다. 따라서 조항스포츠 토토 베트맨스페이스그리고인덱스 스포츠 토토 베트맨스페이스 사용확장 프로그램입니다.

유형이 지정된 스포츠 토토 베트맨

유형이 지정된 스포츠 토토 베트맨은 SQL 표준의 하위 집합을 구현합니다. 표준에 따르면 유형이 지정된 스포츠 토토 베트맨에는 기본 복합 유형에 해당하는 열과 다음과 같은 다른 열이 있습니다.자체 참조 열. PostgreSQL은 이러한 자체 참조 열을 명시적으로 지원하지 않지만 OID 기능을 사용하면 동일한 효과를 얻을 수 있습니다.

파티션 기준

파티션 기준절은 a입니다포스트그레SQL확장.

파티션

파티션절은 aPostgreSQL확장.