도메인 만들기도메인이름[AS]데이터_유형[ 기본값default_expr ]
[ 제약[ ... ] ]
어디서제약다음과 같습니다:
[ 제약 조건제약_이름]
NULL이 아님 | NULL
도메인의 이름(선택적으로 스키마 한정) 생성됩니다.
도메인의 기본 데이터 유형. 이것은 배열 지정자를 포함합니다. 참조사용자 가이드자세한 정보는 데이터 유형 및 배열에 대해.
그기본값절이 지정함 도메인 데이터 유형의 열에 대한 기본값입니다. 는 value는 변수가 없는 표현식입니다(그러나 하위 선택은 허용되지 않음). 기본 표현식의 데이터 유형 도메인의 데이터 유형과 일치해야 합니다.
모든 삽입에는 기본 표현식이 사용됩니다 열의 값을 지정하지 않는 작업입니다. 도메인에 대한 기본값이 없는 경우 기본값은 다음과 같습니다. NULL.
참고:기본값이 다음에 대해 지정된 경우 특정 열의 경우 기본값을 재정의합니다. 도메인과 연결되어 있습니다. 차례로, 도메인 기본값은 다음과 관련된 모든 기본값을 재정의합니다. 기본 데이터 유형입니다.
제약조건에 대한 선택적 이름입니다. 지정하지 않은 경우, 시스템이 이름을 생성합니다.
이 도메인의 값은 NULL이 될 수 없습니다.
이 도메인의 값은 NULL이 허용됩니다. 이것은 기본값입니다.
이 절은 다음과의 호환성을 위해서만 사용할 수 있습니다. 비표준 SQL 데이터베이스. 새 제품에서는 사용이 권장되지 않습니다. 응용 프로그램.
도메인 만들기사용자는 다음을 수행할 수 있습니다. 새 데이터 도메인 등록PostgreSQL현재 데이터베이스에서 사용됩니다. 도메인을 정의하는 사용자가 도메인의 소유자가 됩니다.
스키마 이름이 제공된 경우(예:도메인 myschema.mydomain 만들기 ...) 그런 다음 도메인은 지정된 스키마에 생성됩니다. 그렇지 않으면 그것은 현재 스키마(검색 앞부분에 있는 스키마)에서 생성된 경로; 참조CURRENT_SCHEMA()). 도메인 이름은 해당 그룹에 존재하는 유형 및 도메인 중에서 고유해야 합니다. 스키마.
도메인은 사이의 공통 필드를 추상화하는 데 유용합니다. 유지 관리를 위해 테이블을 단일 위치에 배치합니다. 이메일 주소 열은 여러 테이블에서 사용될 수 있으며 모두 동일합니다. 속성. 도메인을 정의하고 설정하는 대신 이를 사용하세요. 각 테이블의 제약 조건을 개별적으로 처리합니다.
이 예는 다음을 생성합니다.국가_코드데이터 유형을 선택한 다음 테이블 정의의 유형을 사용합니다.
CREATE DOMAIN country_code char(2) NOT NULL; CREATE TABLE 국가 목록(ID INT4, 국가 country_code);