[ 임시 생성 | 온도] 표테이블_이름 (
{ 열_이름 유형 [ column_constraint [ ... ] ]
| table_constraint[, ... ]
) [ 상속(parent_table[, ... ] ) ]
어디서column_constraint다음이 될 수 있습니다:
[ 제약 토토제약_이름]
NULL이 아님 | NULL | 독특한 | 기본 키 | 기본값값| 확인(토토) |
참조테이블 [ ( 열) ] [ 전체 일치 | 부분 일치 ]
[ 삭제 중액션] [ 업데이트 중액션]
[ 연기 가능 | 연기 불가 ] [ 처음에는 연기됨 | 처음에는 즉시 ]
그리고table_constraint다음이 될 수 있습니다:
[ 제약 토토제약_이름]
고유함(열_이름[, ... ] ) |
기본 키(컬럼_이름[, ... ] ) |
확인(토토) |
외래 키(컬럼_이름[, ... ] ) 참조테이블 [ ( 열[, ... ] ) ]
[ 전체 일치 | 부분 일치 ] [ 삭제 시액션] [ 업데이트 중액션]
[ 연기 가능 | 연기 불가 ] [ 처음에는 연기됨 | 처음에는 즉시 ]
지정되면 테이블은 이 항목에 대해서만 생성됩니다. 세션이며 세션 종료 시 자동으로 삭제됩니다. 동일한 이름을 가진 기존 영구 테이블은 (이 세션에서) 임시 테이블이 표시되는 동안 존재합니다. 임시 테이블에 생성된 모든 인덱스는 자동으로 일시적이기도 합니다.
생성될 새 테이블의 이름입니다.
새 항목에 생성될 열의 이름 테이블.
열의 유형. 여기에는 배열이 포함될 수 있습니다. 지정자. 참조PostgreSQL 사용자 가이드데이터 유형에 대한 추가 정보 그리고 배열.
선택적 INHERITS 절은 테이블 목록을 지정합니다. 이 테이블이 자동으로 모든 항목을 상속하는 이름 필드.
열 또는 테이블 제약토토에 대한 선택적 이름입니다. 만약에 지정하지 않으면 시스템이 이름을 생성합니다.
열의 기본값입니다. DEFAULT 절을 참조하세요. 자세한 내용은.
CHECK 절은 무결성 제약 토토 또는 테스트를 지정합니다. 삽입을 위해 충족해야 하는 새 행 또는 업데이트된 행 또는 업데이트 작업이 성공합니다. 각 제약토토은 다음과 같아야 합니다. 부울 결과를 생성하는 표현식입니다. 토토 열 정의 내에 나타나는 것은 참조해야 합니다. 해당 열의 값만, 토토은 다음과 같이 나타납니다. 테이블 제약 토토은 여러 열을 참조할 수 있습니다.
다음이 참조할 기존 테이블의 이름 외래 키 제약 토토입니다.
기존 테이블의 열 이름은 외래 키 제약 토토에 의해 참조됩니다. 지정하지 않은 경우, 기존 테이블의 기본 키가 가정됩니다.
외국인이 접속할 때 취해야 할 조치를 나타내는 키워드 키 제약 토토을 위반했습니다.
테이블 생성새 항목을 입력합니다. 처음에는 빈 테이블을 현재 데이터베이스에 넣습니다. 테이블은 명령을 실행하는 사용자가 "소유"합니다.
각각유형간단할 수도 있습니다 유형, 복합 유형(세트) 또는 배열 유형입니다. 각 속성은 다음을 수행할 수 있습니다. null이 아닌 것으로 지정되어야 하며 각각 기본값을 가질 수 있습니다. 에 의해 지정됨기본값 조항.
참고:일관된 배열 크기 속성은 적용되지 않습니다. 이는 향후 변경될 가능성이 높습니다. 향후 릴리스.
테이블 생성또한 자동으로 생성됩니다. 튜플 유형(구조 유형)을 나타내는 데이터 유형 테이블의 한 행에 해당합니다. 그러므로 테이블은 다음을 수행할 수 없습니다. 기존 데이터 유형과 이름이 동일합니다.
테이블은 1600개 이상의 열을 가질 수 없습니다(실제로는 튜플 길이 제약으로 인해 유효 제한이 더 낮습니다). 에이 테이블은 시스템 카탈로그 테이블과 동일한 이름을 가질 수 없습니다.
상속됨(parent_table [, ... ] )
선택적인 INHERITS 절은 테이블 이름 목록을 지정합니다 새 테이블은 모든 필드를 자동으로 상속합니다. 만약에 동일한 필드 이름이 둘 이상의 상위 테이블에 나타나는 경우 Postgres는 필드 정의가 일치하지 않으면 오류를 보고합니다. 각 상위 테이블. 정의 충돌이 없다면, 그런 다음 중복 필드가 병합되어 단일 필드를 형성합니다. 새 테이블. 새 테이블의 자체 필드 목록에 필드가 포함된 경우 상속된 이름이므로 이 선언도 마찬가지로 일치해야 합니다. 상속된 필드 및 필드 정의는 하나.
동일한 이름의 상속된 필드 선언과 새 필드 선언은 다음과 같습니다. 오류를 방지하려면 정확히 동일한 데이터 유형을 지정하십시오. 그들은 필요하다 동일한 제약 토토을 지정하지 않음 --- 모든 제약 토토이 제공됨 모든 선언의 내용이 함께 병합되어 모두 적용됩니다. 새 테이블. 새 테이블이 명시적으로 기본값을 지정하는 경우 필드 값으로, 이 기본값은 다음의 모든 기본값을 재정의합니다. 필드의 상속된 선언. 그렇지 않으면 어떤 부모라도 필드에 기본값을 지정하려면 모두 동일하게 지정해야 합니다. 기본값이 아니면 오류가 보고됩니다.
Postgres는 생성된 테이블이 자동으로 상속되도록 허용합니다. 상속 계층 구조에서 그 위에 있는 테이블에 대한 함수; 그 즉, 테이블을 생성하면foo상속 중 에서바, 다음을 허용하는 함수 튜플 유형바다음에도 적용 가능 인스턴스foo. (현재는 이것이 작동합니다. 첫 번째 또는 유일한 상위 테이블의 함수에 대해서는 안정적이지만 그렇지 않습니다. 추가 부모에 대한 기능에 적합합니다.)
기본값값
DEFAULT 절은 열에 대한 기본 데이터 값을 할당합니다 그 열 정의가 그 안에 나타납니다. 값은 임의입니다. 변수가 없는 표현식(하위 선택 및 현재 테이블의 다른 열에 대한 상호 참조는 지원되지 않습니다. 지원됨). 기본값의 데이터 유형은 다음과 일치해야 합니다. 열 정의의 데이터 유형입니다.
DEFAULT 표현식은 모든 INSERT 작업에 사용됩니다 열의 값을 지정하지 않습니다. 없는 경우 DEFAULT 절인 경우 기본값은 NULL입니다.
테이블 배포자 생성(
이름 VARCHAR(40) DEFAULT 'luso 영화',
INTEGER DEFAULT NEXTVAL('distributors_serial')을 수행했습니다.
modtime TIMESTAMP DEFAULT 지금()
);위는 리터럴 상수 기본값을 할당합니다.
열이름, 기본값을 준비합니다.
열 값했어요에 의해 생성됨
시퀀스 개체의 다음 값을 선택합니다. 기본값은모드타임행이
삽입되었습니다.그것은 주목할 만한 가치가 있습니다
modtime TIMESTAMP DEFAULT '지금'아마도 의도한 것과 다른 결과가 나올 것입니다: 문자열'지금'다음으로 강제됩니다. 타임스탬프 값은 즉시 적용되므로 기본값은모드타임항상 다음의 시간이 될 것입니다 테이블 생성. 이러한 어려움은 다음을 지정함으로써 방지됩니다. 기본값은 함수 호출입니다.
[ 제약제약_이름]
NULL | NULL이 아님 | 독특한 | 기본 키 | 확인토토|
참조재조정 가능 [ ( refcolumn) ]
[ 일치일치 유형]
[ 삭제 중액션]
[ 업데이트 중액션]
[ [ 아님 ] 연기 가능 ]
[ 초기에 ]체크타임 ] }
제약 조항에 부여된 임의의 이름입니다.
열에는 NULL 값이 포함될 수 있습니다. 이것은 기본값입니다.
열에는 NULL 값이 포함될 수 없습니다. 이 열 제약 토토 CHECK()와 동일합니다.열NULL이 아님).
열에는 고유한 값이 있어야 합니다. 에서포스트그레스이것은 다음에 의해 시행됩니다. 열에 고유 인덱스가 자동으로 생성됩니다.
이 열은 기본 키입니다. 이는 다른 키를 의미합니다. 테이블은 이 열을 고유 식별자로 사용할 수 있습니다. 행. UNIQUE와 NOT NULL은 모두 PRIMARY에 의해 암시됩니다. 키. 자세한 내용은 기본 키를 참조하세요.
임의의 불리언 값 제약토토입니다.
선택적 제약 토토 절은 제약 토토 또는 테스트를 지정합니다. 삽입 또는 업데이트를 위해 충족해야 하는 새 행 또는 업데이트된 행 작업이 성공합니다.
제약토토은 명명된 규칙입니다. 즉, 다음을 수행하는 데 도움이 되는 SQL 개체입니다. 결과에 제한을 두어 유효한 값 집합을 정의합니다. 테이블에서 수행되는 INSERT, UPDATE 또는 DELETE 작업입니다.
무결성 제약 토토을 정의하는 방법에는 두 가지가 있습니다: 테이블 제약 토토(나중에 다룸) 및 열 제약 토토(나중에 다룸) 여기.
열 제약토토은 다음과 같이 정의된 무결성 제약토토입니다. 열 정의의 일부이며 논리적으로 테이블이 됩니다. 생성되자마자 제약이 가해집니다. 열 제약 사용 가능한 항목은 다음과 같습니다:
| 기본 키 |
| 참조 |
| 고유 |
| 확인 |
| NULL이 아님 |
[ 제약이름] NULL이 아님
NOT NULL 제약토토은 열이 허용할 수 있는 규칙을 지정합니다. null이 아닌 값만 포함합니다. 이는 열 제약사항일 뿐입니다. 테이블 제약 토토으로 허용되지 않습니다.
[ 제약제약_이름] 고유
UNIQUE 제약토토은 하나의 그룹이 또는 더 많은 테이블의 개별 열에는 고유한 항목만 포함될 수 있습니다. 값.
지정된 열의 열 정의는 다음과 같습니다. NOT NULL 제약 토토을 포함해야 합니다. UNIQUE 제약토토. 하나 이상의 null 값이 있는 경우 NOT NULL 제약 토토이 없는 열은 다음을 위반하지 않습니다. UNIQUE 제약토토. (이것은 다음과 다릅니다.SQL92정의이지만 더 합리적입니다. 컨벤션. 자세한 내용은 호환성 섹션을 참조하세요. 세부 사항.)
각 UNIQUE 열 제약토토은 다음과 같은 열의 이름을 지정해야 합니다. 다른 UNIQUE로 명명된 열 집합과 다릅니다. 또는 테이블에 정의된 PRIMARY KEY 제약 토토입니다.
참고: 포스트그레스각 UNIQUE에 대한 고유 색인을 자동으로 생성합니다. 데이터 무결성을 보장하기 위한 제약 토토입니다. 인덱스 생성을 참조하세요. 자세한 내용은.
[ 제약제약_이름] 확인(토토 )
이 오류는 런타임 시 발생합니다. 해당 열에 잘못된 값을 삽입했습니다. CHECK 제약 토토.
CHECK 제약토토은 다음에 대한 일반적인 제한사항을 지정합니다. 열 내에서 허용되는 값입니다. CHECK 제약 토토은 또한 테이블 제약 토토으로 허용됩니다.
CHECK는 다음과 관련된 일반 부울 표현식을 지정합니다. 또는 테이블의 열 이상. 다음과 같은 경우 새 행이 거부됩니다. 부울 표현식은 다음에 적용될 때 FALSE로 평가됩니다. 행의 값.
현재 CHECK 표현식에는 하위 선택이 포함될 수 없습니다. 현재 필드 이외의 변수를 참조하지 않습니다. 행.
SQL92 표준에 따르면 CHECK 열 제약 토토은 다음과 같습니다. 적용되는 열만 참조하세요. CHECK 테이블만 제약 토토은 여러 열을 참조할 수 있습니다.포스트그레스이것을 시행하지 않습니다 제한. 열 및 테이블 CHECK 제약 토토을 처리합니다. 비슷해요.
[ 제약제약_이름] 기본 키
이것은 런타임에 다음을 삽입하려고 하면 발생합니다. PRIMARY KEY가 적용되는 열에 값을 복제합니다. 제약.
[ 제약제약_이름] 참조재조정 가능 [ ( refcolumn) ]
[ 일치일치 유형]
[ 삭제 중액션]
[ 업데이트 중액션]
[ [ 아님 ] 연기 가능 ]
[ 초기에 ]체크타임 ]
REFERENCES 제약토토은 열이 값은 다른 열의 값과 비교하여 확인됩니다. REFERENCES는 FOREIGN KEY 테이블의 일부로 지정할 수도 있습니다. 제약.
제약 조항에 부여된 임의의 이름입니다.
확인할 데이터가 포함된 테이블 반대합니다.
열의재조정 가능데이터를 확인하려면 반대. 지정되지 않은 경우 PRIMARY KEY는재조정 가능이다 사용되었습니다.
3가지 일치 유형이 있습니다: MATCH FULL, MATCH PARTIAL이며, 아무것도 지정되지 않은 경우 기본 일치 유형입니다. MATCH FULL은 다중 열 중 하나의 열을 허용하지 않습니다. 모든 외래 키 열이 아닌 한 외래 키는 NULL이 됩니다. NULL입니다. 기본 MATCH 유형은 일부 외부 항목을 허용합니다. 키 열은 NULL이 되고 외부 열의 다른 부분은 키는 NULL이 아닙니다. MATCH PARTIAL은 현재 없습니다. 지원됩니다.
참조된 행이 있을 때 수행할 작업 참조된 테이블을 삭제하는 중입니다. 거기에는 다음 작업을 수행합니다.
외래 키를 위반하면 오류가 발생합니다. 이것은 기본값입니다.
조치 없음과 동일합니다.
삭제된 항목을 참조하는 모든 행을 삭제합니다. 행.
참조하는 열 값을 NULL로 설정하십시오.
참조하는 열 값을 해당 항목으로 설정 기본값입니다.
참조된 열이 참조된 테이블이 새 값으로 업데이트되고 있습니다. 만약에 행은 업데이트되지만 참조된 열은 업데이트되지 않습니다. 변경되었으므로 아무 작업도 수행되지 않습니다. 다음과 같은 것들이 있습니다 행동.
외래 키를 위반하면 오류가 발생합니다. 이것은 기본값입니다.
조치 없음과 동일합니다.
참조 열의 값을 다음으로 업데이트합니다. 참조된 열의 새 값입니다.
참조하는 열 값을 NULL로 설정하십시오.
참조하는 열 값을 해당 항목으로 설정 기본값입니다.
이것은 제약 토토을 연기할 수 있는지 여부를 제어합니다 거래가 끝날 때까지. 연기 가능한 경우 설정 CONSTRAINTS ALL DEFERRED를 사용하면 외래 키가 거래가 끝날 때만 확인하세요. 아님 DEFERRABLE이 기본값입니다.
체크타임두 개가 있습니다 확인할 기본 시간을 지정하는 가능한 값 제약.
다음 끝에서만 제약 토토을 확인하세요. 거래.
각 명령문 다음에 제약토토을 확인하세요. 이것은 기본값입니다.
이 오류는 런타임 시 발생합니다. 값이 없는 열에 값을 삽입합니다. 참조된 테이블의 일치하는 열입니다.
[ 제약 토토 이름 ] 기본 키 | 고유 (열[, ... ] )
[ 제약명 ] CHECK (제약)
[ 제약명 ] FOREIGN KEY (열[, ... ] )
참조재조정 가능 [ ( refcolumn[, ... ] ) ]
[ 일치일치 유형]
[ 삭제 중액션]
[ 업데이트 중액션]
[ [ 아님 ] 연기 가능 ]
[ 초기에 ]체크타임 ]
제약 조항에 부여된 임의의 이름입니다.
고유 인덱스를 정의할 열 이름 PRIMARY KEY의 경우 NOT NULL 제약 토토입니다.
부울 표현식은 다음과 같이 평가됩니다. 제약.
테이블 제약토토은 테이블 제약토토에 정의된 무결성 제약토토입니다. 또는 테이블의 열 이상. "테이블"의 네 가지 변형 제약토토'은 다음과 같습니다:
| 고유 |
| 확인 |
| 기본 키 |
| 외래 키 |
[ 제약제약_이름] 고유(열 [, ... ] )
[ 제약제약_이름] 외래 키(열[, ... ] )
참조재조정 가능 [ ( refcolumn[, ... ] ) ]
[ 일치일치 유형]
[ 삭제 중액션]
[ 업데이트 중액션]
[ [ 아님 ] 연기 가능 ]
[ 초기에 ]체크타임 ]
REFERENCES 제약토토은 열이 값 또는 열 값 집합이 다음 값과 비교하여 확인됩니다. 다른 테이블.
제약 조항에 부여된 임의의 이름입니다.
테이블에 있는 하나 이상의 열 이름.
확인할 데이터가 포함된 테이블 반대합니다.
하나 이상의 열재조정 가능데이터를 확인하려면 반대. 지정되지 않은 경우 PRIMARY KEY는재조정 가능이다 사용되었습니다.
3가지 일치 유형이 있습니다: MATCH FULL, MATCH PARTIAL이며, 아무것도 지정되지 않은 경우 기본 일치 유형입니다. MATCH FULL은 다중 열 중 하나의 열을 허용하지 않습니다. 모든 외래 키 열이 아닌 한 외래 키는 NULL이 됩니다. NULL입니다. 기본 MATCH 유형은 일부 외부 항목을 허용합니다. 키 열은 NULL이 되고 외부 열의 다른 부분은 키는 NULL이 아닙니다. MATCH PARTIAL은 현재 없습니다. 지원됩니다.
참조된 행이 있을 때 수행할 작업 참조된 테이블을 삭제하는 중입니다. 거기에는 다음 작업을 수행합니다.
외래 키를 위반하면 오류가 발생합니다. 이것은 기본값입니다.
조치 없음과 동일합니다.
삭제된 항목을 참조하는 모든 행을 삭제합니다. 행.
참조하는 열 값을 NULL로 설정하십시오.
참조하는 열 값을 해당 항목으로 설정 기본값입니다.
참조된 열이 참조된 테이블이 새 값으로 업데이트되고 있습니다. 만약에 행은 업데이트되지만 참조된 열은 업데이트되지 않습니다. 변경되었으므로 아무 작업도 수행되지 않습니다. 다음과 같은 것들이 있습니다 행동.
외래 키를 위반하면 오류가 발생합니다. 이것은 기본값입니다.
참조되는 행 업데이트를 허용하지 않습니다.
참조 열의 값을 다음으로 업데이트합니다. 참조된 열의 새 값입니다.
참조하는 열 값을 NULL로 설정하십시오.
참조하는 열 값을 해당 항목으로 설정 기본값입니다.
이것은 제약 토토을 연기할 수 있는지 여부를 제어합니다 거래가 끝날 때까지. 연기 가능한 경우 설정 CONSTRAINTS ALL DEFERRED를 사용하면 외래 키가 거래가 끝날 때만 확인하세요. 아님 DEFERRABLE이 기본값입니다.
체크타임두 개가 있습니다 확인할 기본 시간을 지정하는 가능한 값 제약.
각 명령문 다음에 제약 토토을 확인하세요. 이것은 기본값입니다.
다음 끝에서만 제약 토토을 확인하세요. 거래.
테이블 필름 및 테이블 배포자 생성:
테이블 영화 만들기(
코드 CHARACTER(5) CONSTRAINT firstkey PRIMARY KEY,
제목 CHARACTER VARYING(40) NOT NULL,
DECIMAL(3)이 NULL이 아니었습니다.
date_prod 날짜,
종류 CHAR(10),
len 간격 HOUR TO MINUTE
);
테이블 배포자 생성(
DECIMAL(3) PRIMARY KEY DEFAULT NEXTVAL('serial')을 수행했습니다.
이름 VARCHAR(40) NOT NULL CHECK (이름 < '')
);
2차원 배열로 테이블을 생성하세요:
테이블 배열 생성(
벡터 INT[][]
);
테이블 필름에 대한 UNIQUE 테이블 제약토토을 정의하세요. 독특함 테이블 제약 토토은 하나 이상의 열에 정의될 수 있습니다. 테이블:
테이블 영화 만들기(
코드 CHAR(5),
제목 VARCHAR(40),
DECIMAL(3)을 수행했습니다.
date_prod 날짜,
종류 CHAR(10),
len 간격 HOUR TO MINUTE,
CONSTRAINT 생산 UNIQUE(date_prod)
);
CHECK 열 제약 토토 정의:
테이블 배포자 생성(
DECIMAL(3) CHECK를 수행했습니다( 100).
이름 VARCHAR(40)
);
CHECK 테이블 제약토토 정의:
테이블 배포자 생성(
DECIMAL(3)을 수행했습니다.
이름 VARCHAR(40)
CONSTRAINT con1 CHECK (did 100 AND 이름 '')
);
영화 테이블에 대한 PRIMARY KEY 테이블 제약 토토을 정의하세요. PRIMARY KEY 테이블 제약 토토은 하나 이상의 테이블에 정의될 수 있습니다. 테이블 열:
테이블 영화 만들기(
코드 CHAR(5),
제목 VARCHAR(40),
DECIMAL(3)을 수행했습니다.
date_prod 날짜,
종류 CHAR(10),
len 간격 HOUR TO MINUTE,
CONSTRAINT code_title PRIMARY KEY(코드,제목)
);
테이블에 대한 PRIMARY KEY 열 제약 토토을 정의합니다. 유통 업체. PRIMARY KEY 열 제약 토토은 정의만 가능합니다. 테이블의 한 열에(다음 두 예는 동등):
테이블 배포자 생성(
DECIMAL(3)을 수행했습니다.
이름 CHAR VARYING(40),
기본 키(했었습니다)
);
테이블 배포자 생성(
DECIMAL(3) PRIMARY KEY를 수행했습니다.
이름 VARCHAR(40)
);
로컬에서 볼 수 있는 임시 테이블 외에도 SQL92 또한 CREATE GLOBAL TEMPORARY TABLE 문을 정의합니다. 선택적으로 ON COMMIT 절:
글로벌 임시 테이블 생성테이블 ( 열 유형[
기본값값] [ 제약column_constraint] [, ... ] )
[ 제약 토토table_constraint] [ 커밋 중 삭제 | 보존 행 ]
임시 테이블의 경우 CREATE GLOBAL TEMPORARY TABLE 명령문은 다른 클라이언트가 볼 수 있는 새 테이블의 이름을 지정하고 테이블의 열과 제약 토토을 정의합니다.
CREATE TEMPORARY TABLE의 선택적 ON COMMIT 절 임시 테이블을 비워야 하는지 여부를 지정합니다. COMMIT가 실행될 때마다 행 수 ON COMMIT 절이 다음과 같은 경우 생략됨, SQL92는 기본값이 ON COMMIT DELETE임을 지정합니다. 행. 그러나포스트그레' 동작은 항상 ON COMMIT PRESERVE ROWS와 같습니다.
SQL92는 다음에 대한 몇 가지 추가 기능을 지정합니다. 고유:
테이블 제약 정의:
[ 제약제약토토_이름] 고유(열[, ... ] )
[ 처음에 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]
열 제약 정의:
[ 제약제약토토_이름] 고유
[ 처음에는 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]
NULL "제약"(실제로는 비제약)은 다음과 같습니다.포스트그레SQL92 확장 이는 NOT NULL 절과의 대칭을 위해 포함됩니다(그리고 다른 RDBMS와의 호환성을 위해). 이기 때문에 모든 열의 기본값은 단순히 노이즈일 뿐입니다.
[ 제약제약토토_이름] NULL
SQL92는 NOT에 대한 몇 가지 추가 기능을 지정합니다. NULL:
[ 제약제약토토_이름] NULL이 아님
[ 처음에는 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]
SQL92는 다음에 대한 몇 가지 추가 기능을 지정합니다. 제약 토토을 지정하고 어설션과 도메인도 정의합니다. 제약.
참고: 포스트그레스아직 도메인이나 어설션을 지원하지 않습니다.
어설션은 무결성 제약 토토의 특별한 유형이며 다른 제약 토토과 동일한 네임스페이스를 공유합니다. 그러나 주장은 반드시 하나의 특정한 것에 의존하는 것은 아니다 제약 토토은 테이블이므로 SQL-92는 CREATE를 제공합니다. ASSERTION 문을 정의하는 대체 방법으로 제약토토:
어설션 작성이름확인(토토 )
도메인 제약 토토은 CREATE DOMAIN 또는 ALTER에 의해 정의됩니다. DOMAIN 문:
도메인 제약토토:
[ 제약제약_이름] 확인제약[ 최초로 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]
테이블 제약 토토 정의:
[ 제약제약_이름] 기본 키 (열, ... ) | 외래 키제약| 고유제약| 확인제약토토[ 처음에는 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]
열 제약 토토 정의:
[ 제약제약토토_이름] NULL이 아님 | 기본 키 | 외래 키제약토토| 독특한 | 확인제약토토[ 처음에는 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]
CONSTRAINT 정의에는 하나의 연기가 포함될 수 있습니다. 속성 절 및/또는 하나의 초기 제약 토토 모드 절, 어떤 순서로든.
제약토토은 각 끝에서 확인되어야 합니다. 성명. SET CONSTRAINTS ALL DEFERRED에는 다음이 없습니다. 이러한 유형의 제약 토토에 영향을 미칩니다.
이것은 제약 토토을 연기할 수 있는지 여부를 제어합니다 거래가 끝날 때까지. SET가 모두를 제약하는 경우 DEFERRED가 사용되었거나 제약 토토이 INITIALLY로 설정되었습니다. DEFERRED, 외래 키를 확인하게 됩니다. 거래가 끝날 때만 가능합니다.
참고: SET 제약외래 키 제약토토 변경 현재 거래에 대해서만 모드입니다.
각 명령문 다음에 제약 토토을 확인하세요. 이것은 기본값.
다음 끝에서만 제약 토토을 확인하세요. 거래.
SQL92는 체크인을 위한 몇 가지 추가 기능을 지정합니다. 테이블 또는 열 제약 토토 중 하나입니다.
테이블 제약 토토 정의:
[ 제약제약토토_이름] 확인(VALUE토토)
[ 처음에는 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]
열 제약 토토 정의:
[ 제약제약토토_이름] 확인(VALUE토토)
[ 처음에는 연기됨 | 처음에는 즉시 ]
[ [ 아님 ] 연기 가능 ]