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

생성 와이즈 토토

이름

와이즈 토토 작성-새 와이즈 토토 정의

시놉시스

생성 [[local] temporary | 온도] 표table_name(column_name data_type[기본값default_expr] [column_constraint[, ...]]
    |table_constraint[, ...]
))
[상속 (parent_table[, ...])]
[Oids | Oids없이]

어디column_constraintIS :

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

[제약제약 _name]
 고유한 (column_name[, ...]) |
  기본 키 (column_name[, ...]) |
  확인하다 (표현) |
  외국 키 (column_name[, ...]) 참조Reftable[(Refcolumn[, ...])]
    [전체 일치 | 일치 부분] [le 삭제Action] [업데이트Action]

설명

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

와이즈 토토 생성또한 자동으로 생성됩니다 튜플 유형 (구조 유형)을 나타내는 데이터 유형 와이즈 토토의 한 줄에 해당합니다. 따라서 와이즈 토토은 할 수 없습니다 기존 데이터 유형과 동일한 이름을 가지고 있습니다.

와이즈 토토에 1600 개 이상의 열을 가질 수 없습니다. (실제로는 튜플 길이 제약으로 인해 유효 한계가 낮습니다). 에이 와이즈 토토은 시스템 카탈로그 와이즈 토토과 같은 이름을 가질 수 없습니다.

선택적 제약 조항은 제약 조건 (또는 테스트)을 지정합니다. 새 또는 업데이트 된 행은 인서트 또는 업데이트를 위해 만족해야합니다. 성공하기위한 작전. 제약 조건은 이름이 지정된 규칙입니다 : SQL 객체 이는 유효한 값 세트를 정의하여 삽입, 업데이트 또는 삭제 결과에서 수행 된 작업 결과 와이즈 토토.

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

매개 변수

[Local] 임시또는[Local] Temp

지정된 경우 와이즈 토토은 임시 와이즈 토토로 생성됩니다. 임시 와이즈 토토은 세션. 이름이 같은 기존 지속성 와이즈 토토입니다 임시 동안 현재 세션에는 보이지 않습니다 와이즈 토토이 존재합니다. 임시 와이즈 토토에서 생성 된 모든 인덱스는 다음과 같습니다 자동으로 임시.

theLocal단어는 선택 사항입니다. 하지만 아래 참조호환성.

table_name

생성 할 와이즈 토토의 이름.

column_name

새 와이즈 토토에서 작성할 열의 이름.

data_type

열의 데이터 유형. 여기에는 배열이 포함될 수 있습니다 지정자. 참조사용자 가이드데이터 유형에 대한 자세한 내용은 및 배열.

기본값default_expr

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

기본 표현식은 모든 인서트에 사용됩니다 열에 값을 지정하지 않는 작업. 만약에 열에 대한 기본값이없고 기본값은 널.

상속 (parent_table[, ...])

선택 사항상속절 새 와이즈 토토이있는 와이즈 토토 목록을 지정합니다. 모든 열을 자동으로 상속합니다. 동일한 열 이름 인 경우 하나 이상의 상위 와이즈 토토에 존재하며 오류 가보고됩니다. 열의 데이터 유형이 각각에 일치하지 않는 한 부모 와이즈 토토. 충돌이 없으면 복제본이 있습니다 기둥은 병합되어 새에서 단일 열을 형성합니다. 와이즈 토토. 새 와이즈 토토의 열 이름 목록에 또한 상속 된 열, 데이터 유형도 마찬가지로 상속 된 열과 열 정의와 일치하십시오 하나로 합병됩니다. 그러나 상속 및 새 열 같은 이름의 선언은 동일하게 지정할 필요가 없습니다 제약 조건 : 모든 선언에서 제공된 모든 제약 함께 병합되며 모두 새 와이즈 토토에 적용됩니다. 새 와이즈 토토이 기본값을 명시 적으로 지정하는 경우 열,이 기본값은 기본값을 대체합니다 열의 상속 선언. 그렇지 않으면 열에 대한 기본값을 지정하는 부모는 모두 동일한 기본값을 지정하거나 오류 가보고됩니다.

OIDS와 함께또는OIDS없이

이 선택 조항은 새로운 행의 행을 지정합니다 와이즈 토토에는 OIDS (객체 식별자)가 할당되어 있어야합니다 그들을. 기본값은 OID를 갖는 것입니다. (새 와이즈 토토 인 경우 OID가있는 와이즈 토토에서 상속받은 다음OIDS와 함께명령이 말하더라도 강요OIDS없는.)

지정OIDS없이허용 사용자는 행의 행에 대한 OID 생성을 억제하는 사용자 와이즈 토토. 이것은 큰 와이즈 토토에 가치가있을 수 있습니다 OID 소비를 줄이고 랩 어라운드를 연기합니다 32 비트 OID 카운터의. 카운터가 돌아 오면 OID의 독창성은 더 이상 가정 할 수 없습니다 유용성을 상당히 줄입니다.

제약제약 _name

열 또는 와이즈 토토 제약 조건의 선택 이름. 만약에 지정되지 않은 시스템은 이름을 생성합니다.

NOT NULL

열에는 널 값이 포함되지 않습니다. 이것 열 제약 조건과 동일합니다check (널).

NULL

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

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

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

the고유 한제약 조건을 지정합니다 하나 이상의 뚜렷한 열의 그룹이 와이즈 토토에는 고유 한 값 만 포함 할 수 있습니다. 의 행동 고유 한 와이즈 토토 제약 조건은 열의 것과 동일합니다. 추가 기능을 갖춘 제약 여러 열.

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

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

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

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

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

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

check (표현)

check조항은 무결성을 지정합니다 신규 또는 업데이트 된 행이 만족 해야하는 제약 또는 테스트 삽입 또는 업데이트 작업이 성공할 수 있습니다. 각 제약은 부울을 생성하는 표현이어야합니다 결과. 열 정의 내에 나타나는 조건 a 와이즈 토토 제약 조건으로 나타나는 조건이 참조 할 수 있습니다 여러 열.

현재,check표현 하위 선택 사항을 포함하거나 다른 변수를 참조 할 수 없습니다 현재 행의 열.

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

the참조열 제약 조건은 하나 이상의 열의 그룹을 지정합니다. 새 와이즈 토토에는 일치하는 값 만 포함해야합니다. 참조 열의 값 (들)Refcolumn참조 와이즈 토토Reftable. 만약에refcolumn기본 키인 생략되었습니다 의Reftable가 사용됩니다. 참조 된 열은 고유 한 열이어야합니다. 참조 와이즈 토토의 기본 키 제약 조건.

이 열에 추가 된 값은 참조 와이즈 토토 및 참조 열의 값을 사용하여 사용합니다 주어진 경기 유형. 세 가지 일치 유형이 있습니다.전체 일치, 일치 부분및 기본 일치 유형 if 아무도 지정되지 않습니다.전체 일치의지 멀티 컬럼 외국 키의 한 열이 모든 외국 키 열이 null이 아닌 한 null. 기본값 일치 유형은 일부 이외의 키 열이 늘어날 수 있도록합니다. 외국 키의 다른 부분은 무효가 아닙니다.일치 부분아직 구현되지 않았습니다.

또한 참조 열의 데이터가 변경, 특정 작업이 데이터에 대해 수행됩니다. 와이즈 토토의 열. 그만큼ON DELETEclause 참조 행이있을 때 할 조치를 지정합니다. 참조 와이즈 토토이 삭제됩니다. 마찬가지로,업데이트조항을 지정합니다 참조 열에서 수행 할 조치 참조 와이즈 토토이 새 값으로 업데이트되고 있습니다. 만약 행이 업데이트되었지만 참조 된 열은 실제로 아닙니다. 변경, 조치는 수행되지 않습니다. 다음이 있습니다 각 조항에 대한 가능한 조치 :

행동 없음

삭제 또는 삭제를 나타내는 오류를 생성합니다 업데이트는 외래 키 제약 조건을 만듭니다 위반. 이것은 기본 조치입니다.

제한

동일행동 없음.

캐스케이드

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

SET NULL

참조 열 값을 null로 설정합니다.

기본값 설정

참조 열 값을 기본값으로 설정합니다 값.

기본 키 열이 자주 업데이트되면 에 색인을 추가하는 것이 현명합니다참조열이행동 없음and캐스케이드참조열이 더 많을 수 있습니다 효율적으로 수행되었습니다.

연기 가능또는연기가되지 않음

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

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

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

진단

Create

와이즈 토토이 성공적으로 생성되면 메시지가 반환됩니다.

오류

와이즈 토토 생성이 실패한 경우 메시지가 반환되었습니다. 이것은 보통입니다 다음과 같은 설명 텍스트와 함께오류 : 관계 '와이즈 토토' 이미 존재합니다지정된 와이즈 토토이 이미 존재하는 경우 런타임에 발생합니다. 데이터베이스.

노트

  • 응용 프로그램이 OID를 사용하여 식별 할 때마다 와이즈 토토의 특정 행, 에 대한 독특한 제약OID와이즈 토토의 열의 OID가 실제로 카운터 랩 어라운드 후에도 행을 고유하게 식별합니다. OID가 와이즈 토토에서 독특하다고 가정하지 마십시오. 당신이 데이터베이스 전체 고유 식별자가 필요하고 조합을 사용하십시오 의Tableoid및 ROW OID 목적. (미래는 아마도PostgreSQL릴리스는 별도를 사용합니다 각 와이즈 토토에 대한 OID 카운터,필요한옵션이 아니라 포함하다Tableoid고유 식별자 데이터베이스 전체.)

    팁 :사용OIDS기본이없는 와이즈 토토에는 권장되지 않습니다 Key, OID 또는 고유 한 데이터 키가 없으므로 IT 특정 행을 식별하기가 어렵습니다.

  • postgresql자동으로 각 고유 한 제약 조건 및 기본 키에 대한 인덱스를 만듭니다. 독창성을 시행하기위한 제약. 따라서 그렇지 않습니다 기본 키에 대한 명시 적 인덱스를 작성하는 데 필요합니다 열. (보다색인 생성더 많은 것 정보.)

  • SQL92 표준은이라고 말합니다.check열 제약 조건 만 참조 할 수 있습니다 그들이 적용하는 열; 오직check와이즈 토토 제약 조건은 여러 열을 참조 할 수 있습니다.PostgreSQL이것을 시행하지 않습니다 제한; 열과 와이즈 토토 점검 제약 조건을 처리합니다 서로 같은.

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

예제

와이즈 토토 생성영화및 와이즈 토토유통 업체:

와이즈 토토 필름 생성 (
    코드 문자 (5) 제약 조건 FirstKey 기본 키,
    제목 문자는 다양한 (40) NULL,
    10 진수 (3)가 널이 아니 었습니까?
    date_prod 날짜,
    친절한 숯 (10),
    렌 간격 시간에서 분
);
와이즈 토토 분배기 생성 (
     10 진수 (3) 기본 키 기본값 NextVal ( 'Serial'),
     이름 varchar (40) Not Null Check (name < '')
);

2 차원 배열이있는 와이즈 토토 만들기 :

와이즈 토토 배열 생성 (
    벡터 int [] []
);

와이즈 토토 필름의 고유 한 와이즈 토토 제약 조건을 정의합니다. 고유한 와이즈 토토 제약은 하나 이상의 열에서 정의 될 수 있습니다. 와이즈 토토:

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

검사 열 제약 조건 정의 :

와이즈 토토 분배기 생성 (
    소수점 (3) 확인 (100),
    이름 varchar (40)
);

체크 와이즈 토토 정의 제약 조건 :

와이즈 토토 분배기 생성 (
    10 진수 (3),
    이름 varchar (40)
    제약 조건 CON1 확인 (did 100 및 name < '')
);

와이즈 토토의 기본 키 와이즈 토토 제약 조건 정의영화. 기본 키 와이즈 토토 제약 조건이 될 수 있습니다 와이즈 토토의 하나 이상의 열에 정의됩니다.

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

표에 대한 기본 키 제약 조건 정의유통 업체. 다음 두 가지 예가 있습니다 동등한 것은 와이즈 토토 제약 조건 구문을 사용하여 첫 번째입니다 두 번째 열 제약 조건 표기법.

와이즈 토토 분배기 생성 (
    10 진수 (3),
    이름 문자가 다양합니다 (40),
    기본 키 (DID)
);
와이즈 토토 분배기 생성 (
    10 진수 (3) 기본 키를 했습니까?
    이름 varchar (40)
);

이것은 열에 문자 그대로 상수 기본값을 할당합니다이름및 기본값을 배열합니다 열did생성됩니다 시퀀스 객체의 다음 값을 선택합니다. 기본값 의modtime시간이 될 것입니다 행이 삽입됩니다.

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

두 정의NOT NULL열 표에 제약유통 업체, 그 중 하나는 명시 적으로 제공됩니다 이름 :

와이즈 토토 분배기 생성 (
    10 진수 (3) 제약 조건 NO_NULL이 NULL이 아니 었습니까?
    varchar (40) 이름은 null이 아닙니다
);

이름열 :

와이즈 토토 분배기 생성 (
    10 진수 (3),
    이름 Varchar (40) 독특합니다
);

위는 와이즈 토토로 지정된 다음과 같습니다. 강제:

와이즈 토토 분배기 생성 (
    10 진수 (3),
    이름 varchar (40),
    독특한 (이름)
);

호환성

the와이즈 토토 만들기SQL92를 준수합니다 예외가있는 중간 및 SQL99의 하위 집합에 아래 및 위의 설명에서.

임시 와이즈 토토

로컬 임시 와이즈 토토 외에도 SQL92는 또한 정의합니다. 에이글로벌 임시 와이즈 토토 만들기진술. 글로벌 임시 와이즈 토토도 다른 사람에게도 보입니다 세션.

임시 와이즈 토토의 경우 선택 사항이 있습니다on Commit절 :

생성 Global | 로컬 임시 와이즈 토토와이즈 토토(...) [Commit Delete | 보존 행]

theon Commit조항을 지정합니다 임시 와이즈 토토에 행을 비울 지 여부 언제든지커밋실행됩니다. 인 경우on Commit조항은 생략되었으며, SQL92 기본값이임을 지정합니다.커밋 줄 삭제. 그러나의 행동PostgreSQL항상커밋 보존 행.

NULL "제약"

theNULL "제약"(실제로는 제한되지 않은)입니다.PostgreSQLSQL92로의 확장 다른 RDBMS와의 호환성을 위해 포함됩니다 (및 와 대칭의 경우NOT NULL제약 조건). 모든 열의 기본값이므로 존재는 단순히 소음입니다.

어설 션

어설 션은 특별한 유형의 무결성 제약 조건이며 다른 제약과 동일한 네임 스페이스를 공유합니다. 그러나, an 주장이 반드시 하나의 특정 와이즈 토토에 의존하는 것은 아닙니다 제약 조건이 있으므로 SQL92는를 제공합니다.주장 만들기대체 방법으로서 문 제약 조건을 정의하려면 :

주장 만들기이름check (조건)

PostgreSQL그렇지 않습니다 현재 어설 션을 구현하십시오.

상속

다중 상속상속절은 A입니다.PostgreSQL언어 확장. SQL99 (그러나 SQL92)는 다른 구문을 사용하여 단일 상속을 정의합니다 그리고 다른 의미론. SQL99 스타일 상속은 아직 없습니다 지원PostgreSQL.

객체 ID

thePostgreSQL개념 OIDS는 표준이 아닙니다.