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

생성 롤 토토

이름

롤 토토 작성-새 롤 토토 정의

시놉시스

만들기 [[Global | 로컬] 임시 | 온도] 표table_namecolumn_name data_type[기본값default_expr] [column_constraint[...]]
    |table_constraint| 좋다parent_table[포함 | 제외 기본값 | 제약 | 색인] ...
    [, ...]
])))
[상속 (parent_table[, ...])]
[ 와 함께 (Storage_Parameter[=value] [, ...]) | oids | Oids없이]
[커밋 보존 행 | 행 삭제 | 떨어지다  ]
[롤 토토 스페이스롤 토토 스페이스]

어디column_constraintIS :

[제약제약 _name]
null 아님 | 
  널 | 
  고유한index_parameters|
  기본 키index_parameters|
  확인하다 (표현) |
  참조Reftable[(Refcolumn)] [전체 일치 | 부분적 일치 | 단순한 일치]
    [deleteAction] [업데이트Action]table_constraintIS :

[제약제약 _name]
 고유한 (column_name[, ...])index_parameters|
  기본 키 (column_name[, ...])index_parameters|
  확인하다 (표현) |
  외국 키 (column_name[, ...]) 참조Reftable[(refcolumn[, ...])]
    [전체 일치 | 부분적 일치 | 단순한 일치] [delete에서Action] [업데이트Action]index_parametersin고유 한기본 키제약은 다음과 같습니다.

[ 와 함께 (Storage_Parameter[=value] [, ...])]
[인덱스 롤 토토 스페이스 사용롤 토토 스페이스]

설명

롤 토토 만들기새로운 것을 만들 것입니다. 초기에 현재 데이터베이스의 빈 롤 토토. 롤 토토이 될 것입니다 명령을 발행하는 사용자가 소유합니다.

스키마 이름이 제공되는 경우 (예 :롤 토토 작성 myschema.mytable ...) 그런 다음 테이블 지정된 스키마에서 생성됩니다. 그렇지 않으면 그것이 생성됩니다 현재 스키마. 임시 테이블은 특수 스키마에 존재하며 따라서 임시 테이블을 만들 때 스키마 이름을 제시 할 수 없습니다. 테이블의 이름은 다른 이름과 구별되어야합니다. 동일한 스키마에서 표, 시퀀스, 인덱스 또는보기.

롤 토토 생성자동으로 복합 유형을 나타내는 데이터 유형을 만듭니다 테이블의 한 줄에 해당합니다. 따라서 테이블은 할 수 없습니다 기존 데이터 유형과 동일한 이름을 갖습니다. 개요.

선택적 제약 조항은 제약 조건을 지정합니다 (테스트) 새 또는 업데이트 된 행은 인서트 또는 업데이트를 위해 만족해야합니다. 성공하기위한 작전. 제약 조건은 도움이되는 SQL 객체입니다 다양한 방식으로 롤 토토의 유효한 값을 정의하십시오.

제약 조건을 정의하는 두 가지 방법 인 롤 토토 제약 조건이 있습니다 및 열 제약 조건. 열 제약 조건은의 일부로 정의됩니다 열 정의. 롤 토토 제약 조건 정의는 묶이지 않습니다 특정 열이며 둘 이상의 열을 포함 할 수 있습니다. 모든 열 제약 조건은 롤 토토로도 쓸 수 있습니다. 강제; 열 제약 조건은 단지 표기법 편의입니다 제약 조건이 한 열에 만 영향을 줄 때 사용합니다.

매개 변수

임시또는temp

지정된 경우 테이블은 임시 테이블로 생성됩니다. 임시 테이블은 세션 또는 선택적으로 현재의 끝에 트랜잭션 (참조on Commit아래). 이름이 같은 기존 영구 테이블은 아닙니다 임시 테이블 동안 현재 세션에 표시됩니다 스키마 자격을 참조하지 않는 한 존재합니다 이름. 임시 테이블에서 생성 된 모든 인덱스는 다음과 같습니다 자동으로 임시.

선택적으로글로벌또는로컬전에 작성할 수 있습니다임시또는temp. 이것은 차이가 없습니다postgresql그러나 참조호환성.

table_name

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

column_name

새 테이블에서 작성할 열의 이름.

data_type

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

기본값default_expr

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

기본 표현식은 삽입물에 사용됩니다 열에 값을 지정하지 않는 작업. 만약에 열에 대한 기본값이없고 기본값은 널.

상속 (parent_table[, ...])

선택 사항상속절 새 테이블이있는 테이블 목록을 지정합니다. 모든 열을 자동으로 상속합니다.

사용상속생성 a 새로운 아동 롤 토토과 그 사이의 지속적인 관계 부모 롤 토토 (들). 부모에 대한 스키마 수정 일반적으로 어린이에게도 전파되고 기본적으로 아동 롤 토토의 데이터는 스캔에 포함됩니다. 부모).

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

check제약 조건이 병합됩니다 본질적으로 열과 같은 방식 : 여러 부모 인 경우 테이블 및/또는 새로운 테이블 정의에는 포함되어 있습니다 동일하게 이름check제약 조건, 이러한 제약 조건은 모두 동일한 점검을 가져야합니다 표현 또는 오류 가보고됩니다. 제약 동일한 이름과 표현이 하나로 병합됩니다. 복사. 이름이없는check새 테이블의 제약 조건은 절대로 병합되지 않습니다. 독특한 이름은 항상 선택됩니다.

Likeparent_table[포함 | 을 제외한 기본값 | 제약 | 인덱스]

thekike절은 a 새 테이블이 자동으로 모든 것을 복사하는 테이블 열 이름, 데이터 유형 및 널이 아닙니다 제약 조건.

와 달리상속, 새 롤 토토 그리고 원래 롤 토토은 창조 후에 완전히 분리됩니다 완료되었습니다. 원래 롤 토토의 변경 사항은 그렇지 않습니다 새 롤 토토에 적용되며 포함 할 수 없습니다. 원래 롤 토토 스캔으로 새 롤 토토의 데이터.

복사 된 열 정의에 대한 기본 표현식 if 만 복사됩니다.기본값지정되어 있습니다. 기본 동작은 다음과 같습니다 기본 표현식을 제외하고 복사 한 결과를 초래합니다 새 테이블의 열에 널 기본값이있는 열.

NOT NULL 제약 조건은 항상 새 롤 토토에 복사됩니다.check제약 조건 만 있습니다 if 복사제약 포함is 지정; 다른 유형의 제약 조건은 절대로 복사되지 않습니다. 또한 열 제약과 구분은 없습니다 표 제한 - 제약 조건이 요청되면 모두 제약 조건이 복사되어 있습니다.

원래 롤 토토의 모든 인덱스는 생성되지 않습니다. 새 롤 토토,인덱스조항이 지정되어 있습니다.

와 달리상속, 복사 된 열 및 제약 조건은 병합되지 않습니다 마찬가지로 열 및 제약 조건. 같은 이름 인 경우 명시 적으로 또는 다른 사람에 지정됩니다좋아요조항, 오류가 신호를받습니다.

제약제약 _name

열 또는 테이블 제약 조건의 선택 이름. 만약에 제약 조건이 위반되고 제약 이름이 존재합니다 오류 메시지에서와 같은 제약 이름col은 긍정적이어야합니다익숙해 질 수 있습니다 유용한 제약 정보를 클라이언트에게 전달하십시오 응용 프로그램. (지정하려면 이중 인용물이 필요합니다 공백을 포함하는 제약 이름.) 제약 이름 인 경우 지정되지 않고 시스템은 이름을 생성합니다.

NOT NULL

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

NULL

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

이 조항은 호환성 만 제공됩니다 비표준 SQL 데이터베이스. 그것의 사용은 신규에서 낙담합니다 응용 프로그램.

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

the고유 한제약 조건을 지정합니다 테이블의 하나 이상의 열에있는 그룹에 고유 한 가치 만. 독특한 테이블의 동작 제약 조건은 열 제약 조건과 동일하며 여러 열에 걸쳐있는 추가 기능.

고유 한 제약 조건의 목적을 위해 Null 값은 다음과 같습니다. 동등한 것으로 간주되지 않습니다.

각 고유 테이블 제약 조건은 열 세트의 이름을 지정해야합니다. 그것은 어떤 열 세트와 다릅니다. 에 대해 정의 된 다른 고유 또는 기본 키 제약 조건 테이블. (그렇지 않으면 그것은 동일한 제약 일 것입니다 두 번 나열 됨.)

기본 키(열 강제)
기본 키 (column_name[, ...])(표 강제)

기본 키 제약 조건은 열을 지정합니다 테이블의 열에는 고유 한 (비면성) 만 포함 할 수 있습니다. unnull 값. 기술적으로,기본 열쇠단지의 조합 일뿐입니다.고유 한and, 그러나 기본 키로 열 세트를 식별 또한 스키마 설계에 대한 메타 데이터도 기본 키는 다른 테이블 이이 세트에 의존 할 수 있음을 의미합니다. 행의 고유 식별자로서 열의 열.

테이블에 대해 하나의 기본 키 만 지정할 수 있습니다. 열 제약 조건이든 테이블 제약 조건이든

기본 키 제약 조건은 열 세트의 이름을 지정해야합니다. 그것은 다른 열의 다른 열 세트와 다릅니다. 동일한 테이블에 대해 정의 된 고유 제약 조건.

check (표현)

thecheck조항을 지정합니다 표현은 새롭거나 업데이트 된 부울 결과를 생성합니다 삽입 또는 업데이트 작업을 위해 행을 만족시켜야합니다. 성공하십시오. 진실 또는 미지의 성공을 평가하는 표현. 인서트 또는 업데이트 작업 행이 생성되는 경우 거짓 결과 오류 예외가 제기되고 삽입 또는 업데이트는 데이터베이스를 변경하지 않습니다. 점검 제약 열 제약 조건으로 지정되어 있어야합니다 칼럼의 값 만, 표현식은 a에 나타납니다 테이블 제약 조건은 여러 열을 참조 할 수 있습니다.

현재,check표현 하위 쿼리를 포함하거나 다른 변수를 참조 할 수 없습니다 현재 행의 열.

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

이 조항은 외국의 주요 제약 조건을 지정합니다 하나 이상의 새로운 열의 그룹이 테이블은 참조 테이블의 일부 행의 참조 열. 만약에Refcolumn생략, 의 주요 키Reftable가 사용됩니다. 참조 열은 고유 또는 기본 키의 열이어야합니다. 참조 테이블의 제약. 외국 키 임시 테이블 사이에 제약 조건을 정의 할 수 없습니다 영구 테이블.

참조 열에 삽입 된 값은 다음과 같습니다 참조 테이블의 값과 일치합니다 주어진 일치 유형을 사용하여 참조 된 열. 거기 있습니다 세 가지 매치 유형 :전체 일치, 일치 부분단순한 일치, 또한 기본값입니다.전체 일치는 허용하지 않습니다 다중 검은 외국 키의 열이 모두가 아니라면 외국 키 열은 널입니다.일치 단순한일부 외국 키 열이 널이 될 수 있습니다 외국 키의 다른 부분은 무효가 아니지만일치 부분는 아직 없습니다 구현.

또한 참조 열의 데이터가 변경, 특정 작업이 데이터에 대해 수행됩니다. 테이블의 열. 그만큼ON DELETE절은 참조시 수행 할 조치를 지정합니다 참조 테이블의 행이 삭제됩니다. 마찬가지로,on update조항을 지정합니다 참조 열에서 수행 할 조치 참조 테이블이 새 값으로 업데이트되고 있습니다. 만약 행이 업데이트되었지만 참조 된 열은 실제로 아닙니다. 변경, 조치는 수행되지 않습니다. 다른 참조 조치 그만큼행동 없음점검 할 수 없습니다 제약 조건이 연기 가능하다고 선언하더라도 연기되었습니다. 각각에 대한 가능한 조치가 있습니다 절:

행동 없음

삭제 또는 삭제를 나타내는 오류를 생성합니다 업데이트는 외래 키 제약 조건을 만듭니다 위반. 제약 조건이 연기되면이 오류 제한 조건 검사 시간에서 생성됩니다 참조 행이 여전히 존재합니다. 이것은 기본값입니다 행동.

제한

삭제 또는 삭제를 나타내는 오류를 생성합니다 업데이트는 외래 키 제약 조건을 만듭니다 위반. 이것은와 동일합니다.아니오 행동수표가 아닌 경우를 제외하고 연기 가능.

캐스케이드

삭제 된 행을 참조하는 행을 삭제하십시오 참조 열의 값을 새로 업데이트하십시오. 참조 열의 값 각각.

SET NULL

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

기본값 설정

참조 열을 기본값으로 설정하십시오 값.

참조 된 열이 자주 변경되면 외국 키 열에 색인을 추가하는 것이 현명 할 수 있습니다. 외국 키와 관련된 참조 조치 열을보다 효율적으로 수행 할 수 있습니다.

연기 가능
연기가되지 않음

이것은 제약 조건을 연기 할 수 있는지 여부를 제어합니다. 에이 연기되지 않는 제약 조건이 확인됩니다 모든 명령 직후. 제약 조건 확인 연기 가능성은 끝날 때까지 연기 될 수 있습니다. 트랜잭션 ( 사용)제약 세트명령).연기가되지 않음기본값입니다. 외국의 주요 제약만이 현재이 조항을 수락합니다. 다른 모든 제약 유형은 연기가 없습니다.

처음에 즉시
처음 연기

제약 조건을 연기 할 수있는 경우이 조항은 다음을 지정합니다 제약 조건을 확인하는 기본 시간. 제약이 인 경우처음에 즉시, 확인된다 각 진술 후. 이것은 기본값입니다. 만약 제약은처음 연기, 거래가 끝날 때만 확인됩니다. 그만큼 제약 조건 확인 시간은로 변경 될 수 있습니다.PostgreSQL : 문서 : 8.4 : 배트맨 토토 세트명령.

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

이 조항은 a에 대한 선택적인 스토리지 매개 변수를 지정합니다 표 또는 색인; 보다스토리지 매개 변수자세한 내용. 그만큼with롤 토토에 대한 조항도 포함 할 수 있습니다oids = true(또는 그냥OIDS) 새 롤 토토의 행을 지정합니다 OID (객체 식별자)가 그들에게 할당되어 있어야하거나oids = false행에는 OID가 없어야합니다. 만약에OIDS지정되지 않았으며 기본 설정은에 따라 다릅니다.default_with_oids구성 매개 변수. (새 테이블이 상속 된 경우 OID가있는 테이블,oids = true명령이 말하더라도 강요oids = false.)

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

생성 된 후 테이블에서 OID를 제거하려면 사용사설 토토 PostgreSQL :.

OIDS와 함께
OIDS없이

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

on Commit

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

보존 행

끝에 특별한 조치가 취하지 않습니다 업무. 이것은 기본 동작입니다.

행 삭제

임시 테이블의 모든 행이 삭제됩니다. 각 트랜잭션 블록의 끝. 본질적으로, an 오토매틱Truncate각각에서 수행됩니다 저지르다.

드롭

임시 테이블이 끝날 때 떨어집니다. 현재 트랜잭션 블록.

롤 토토 스페이스롤 토토 스페이스

the롤 토토 스페이스입니다 새 테이블이 될 롤 토토 스페이스의 이름 생성. 지정되지 않은 경우default_tablespace상담 또는temp_tablespaces테이블이 임시 인 경우.

색인 롤 토토 스페이스 사용롤 토토 스페이스

이 조항은 롤 토토 스페이스를 선택할 수 있습니다 A와 관련된 색인고유 한또는기본 키제약 조건이 될 것입니다 생성. 지정되지 않은 경우default_tablespace상담 또는temp_tablespaces테이블이 임시 인 경우.

스토리지 매개 변수

thewith조항을 지정할 수 있습니다스토리지 매개 변수롤 토토 용 A와 관련된 색인고유 한또는기본 키제약. 저장 인덱스에 대한 매개 변수는에 문서화되어 있습니다.색인 생성. 스토리지 매개 변수 현재 테이블에 사용할 수 있습니다. 아래에 나열되어 있습니다. 각각에 대해 매개 변수는 언급되지 않는 한 추가 매개 변수가 있습니다 동일한 이름이 접두사토스트., 테이블의 동작을 제어하는 데 사용할 수 있습니다. 반성토스트테이블, if 모든 (참조섹션 53.2더 많은 것 토스트에 대한 정보). 토스트 테이블은 상속합니다 그만큼autovacuum_*그것의 값 부모 롤 토토, 없으면Toast.Autovacuum_*설정 세트.

FillFactor(정수)

테이블의 채우기는 10 사이의 백분율입니다. 100. 100 (완전한 포장)이 기본값입니다. 언제 a 작은 fillfactor가 지정되어 있습니다.삽입운영 팩 롤 토토 페이지 만 표시된 백분율; 각각의 나머지 공간 해당 페이지의 행을 업데이트하기 위해 페이지가 예약되어 있습니다. 이것 주는업데이트배치 할 기회 같은 페이지에있는 행의 업데이트 된 사본 원본은 다른 페이지. 항목이없는 테이블의 경우 업데이트 된 완전한 포장이 최선의 선택이지만 더 많은 업데이트 된 테이블 더 작은 FillFactors가 있습니다 적절한. 이 매개 변수는 토스트에 대해 설정할 수 없습니다 테이블.

autovacuum_enabled, Toast.Autovacuum_enabled(부울)

autovacuum 데몬을 활성화 또는 비활성화합니다 특정 테이블. 사실이라면 Autovacuum 데몬이 될 것입니다 시작진공a 업데이트되거나 삭제 된 경우 특정 테이블 튜플이 초과autovacuum_vacuum_thresholdPlusautovacuum_vacuum_scale_factor현재 추정 된 살아있는 튜플의 수 관계에서. 마찬가지로, 그것은 시작할 것입니다분석삽입, 업데이트 또는 삭제 된 튜플 수를 초과합니다autovacuum_analyze_thresholdplusautovacuum_analyze_scale_factor타임즈 the 현재 추정되는 살아있는 튜플의 수 관계. False 인 경우이 테이블은 자동화되지 않습니다. 트랜잭션 ID 랩 어라운드를 방지하는 것을 제외하고. 보다섹션 23.1.4랩 어라운드 방지에 대한 자세한 내용. 관찰하다 이 변수는 값을 상속합니다.autovacuum설정.

autovacuum_vacuum_threshold, Toast.Autovacuum_vacuum_threshold(정수)

전에 최소 업데이트 또는 삭제 된 튜플 수 시작진공a 특정 표.

autovacuum_vacuum_scale_factor, 토스트. AUTOVACUUM_VACUUM_SCALE_FACTOR(float4)

승수Reltuplesadd에autovacuum_vacuum_threshold.

autovacuum_analyze_threshold(정수)

삽입, 업데이트 또는 삭제 된 튜플의 최소 수 시작하기 전에분석특정 롤 토토에서의 작동.

autovacuum_analyze_scale_factor(float4)

승수reltuplesadd에autovacuum_analyze_threshold.

autovacuum_vacuum_cost_delay, 토스트. Autovacuum_vacuum_cost_delay(Integer)

Customautovacuum_vacuum_cost_delay매개 변수.

autovacuum_vacuum_cost_limit, Toast.Autovacuum_vacuum_cost_limit(정수)

Customautovacuum_vacuum_cost_limit매개 변수.

autovacuum_freeze_min_age, 토스트 .Autovacuum_freeze_min_age(정수)

CustomVACUUM_FREEZE_MIN_AGE매개 변수. Autovacuum은 시도를 무시할 것입니다 테이블 당 설정autovacuum_freeze_min_age보다 큽니다 절반 시스템 전체autovacuum_freeze_max_age설정.

autovacuum_freeze_max_age, 토스트. Autovacuum_freeze_max_age(정수)

Customautovacuum_freeze_max_age매개 변수. 주목하십시오 Autovacuum은 테이블 당 설정 시도를 무시합니다autovacuum_freeze_max_age더 큰 시스템 전체 설정보다 설정할 수 있습니다 더 작은). 설정할 수있는 동안autovacuum_freeze_max_age매우 작습니다 제로조차도, 이것은 일반적으로 현명하지 않습니다. 빈번한 진공 청소기.

autovacuum_freeze_table_age, 토스트. Autovacuum_freeze_table_age(Integer)

CustomVACUUM_FREEZE_TABLE_AGE매개 변수.

노트

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

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

PostgreSQL자동으로 각 고유 한 제약 조건 및 기본 키에 대한 인덱스를 만듭니다. 고유성을 집행하기위한 제약. 따라서 필요하지 않습니다 기본 키 열에 대해 명시 적으로 인덱스를 만듭니다. (보다PostgreSQL : 문서 : 8.4 : 색인 범퍼카 토토추가 정보.)

고유 한 제약 조건 및 기본 키는 현재 구현. 이것은 상속의 조합을 만듭니다 그리고 독특한 제약 조건 다소 기능 장애가 있습니다.

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

예제

롤 토토 생성영화및 롤 토토유통 업체:

테이블 필름 생성 (
    코드 char (5) 제약 조건 FirstKey 1 차 키,
    타이틀 바르 차 (40) null,
    정수가 무효가되지 않았습니까?
    date_prod 날짜,
    Kind Varchar (10),
    렌 간격 시간에서 분
);
테이블 분배기 생성 (
     정수 기본 키 기본값 NextVal ( 'Serial'),
     이름 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),
    독특한 (이름)
);

동일한 테이블을 작성하여 두 테이블과 그 고유 한 색인 :

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

롤 토토 생성Cinemasin TableSpacediskvol1:

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

호환성

the롤 토토 생성명령을 준수합니다 그만큼SQL표준 아래 나열된 예외.

임시 테이블

의 구문은임시 생성 테이블SQL 표준의 것과 비슷합니다 동일하지 않습니다. 표준에서는 임시 테이블이 정의됩니다 한 번만 자동으로 존재합니다 (비어있는 것으로 시작합니다 내용) 필요한 모든 세션에서.PostgreSQL대신 각 세션이 필요합니다 자신의 발행임시 생성 테이블사용할 각 임시 테이블을 사용하는 명령. 이것 다른 세션이 동일한 임시 테이블 이름을 사용하도록 허용합니다. 표준의 접근 방식은 다른 목적을 위해 주어진 임시 테이블 이름의 모든 인스턴스를 동일한 테이블 구조를 가지고 있습니다.

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

표준의 글로벌과 지역의 차이 임시 테이블이 없습니다PostgreSQL, 그 차이는 의존하기 때문에 모듈의 개념에 대해PostgreSQL을 위한 호환성 Sake,PostgreSQL수락글로벌Local임시 테이블 선언의 키워드이지만 효과.

theon Commit임시 조항 테이블은 또한 SQL 표준과 비슷하지만 일부는 있습니다 차이. 인 경우on Commit절 생략되면 SQL은 기본 동작이임을 지정합니다.커밋 삭제 행. 그러나, 의 기본 동작PostgreSQLis커밋 보존 행. 그만큼on Commit Drop옵션이 존재하지 않습니다 SQL에서

열 확인 제약 조건

SQL 표준은check열 제약 조건은 신청 된 열만 참조 할 수 있습니다. 오직check테이블 제약 조건을 참조 할 수 있습니다 여러 열에.PostgreSQL이것을 시행하지 않습니다 제한; 열과 테이블 점검 제약 조건을 처리합니다 서로 같은.

NULL "제약"

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

상속

다중 상속을 통한상속절은 A입니다.PostgreSQL언어 확장. SQL : 1999 나중에 다른 구문을 사용하여 단일 상속을 정의합니다 그리고 다른 의미론. SQL : 1999 스타일 상속은 아직 없습니다 지원PostgreSQL.

제로 컬럼 롤 토토

PostgreSQL롤 토토을 허용합니다 생성 할 열이 없습니다 (예 :롤 토토 작성 foo ();). 이것은 연장입니다 SQL 표준은 제로 컬럼 롤 토토을 허용하지 않습니다. 제로 열 테이블 자체는 그다지 유용하지 않지만 그들을 허용하지 않으면 이상한 특별한 경우ALTER TABLE DROP 열이므로 더 깨끗해 보입니다 이 사양 제한을 무시하십시오.

with

thewith절은 A입니다.PostgreSQL확장; 둘 다 저장 매개 변수 나 OID가 표준에 있습니다.

롤 토토 스페이스

thePostgreSQL개념 롤 토토 스페이스는 표준의 일부가 아닙니다. 따라서 조항롤 토토 스페이스색인 롤 토토 스페이스 사용확장입니다.