PostgreSQL 에서 도메인이란 "선택적 제약사항"을 가진 데이터 타입 이라고 정의됩니다. 다음은 PostgreSQL 도큐먼트의 시놉시스 입니다.
CREATE DOMAIN 도매인이름 AS 데이터타입
[ COLLATE collation ]
[ DEFAULT expression ]
[ constraint [ ... ] ]
where constraint is:
[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK (expression) }
COLLATE : 데이터베이스 정렬 순서 결정
DAFAULT : 디폴트 값이 있다면 어떻게 할 것인지
constraint : NOT NULL | NULL | CHECK (expression) 값을 이용해 도메인 내용을 정의
이게 무슨말인지 처음에는 이해가 잘 가지 않았는데, 아래 예제 코드를 보니 쉽게 이해할 수 있었습니다. 아래 SQL 문에서, us_postal_code 의 데이터 타입을 특정 타입, 형식 등으로 제한하고 있습니다. 이 외에도 문자열 길이 범위 제한 이라든지 다양한 제약을 넣어 만들 수 있습니다.
CREATE DOMAIN us_postal_code AS TEXT
CHECK(
VALUE ~ '^\d{5}$'
OR VALUE ~ '^\d{5}-\d{4}$'
);
위에서 정의한 도메인을 어떻게 활용하는지 보여주는 코드입니다. 맨 마지막 줄에서 postal 의 데이터 타입 자리에 us_postal_code 도메인을 사용하고 있습니다.
CREATE TABLE us_snail_addy (
address_id SERIAL PRIMARY KEY,
street1 TEXT NOT NULL,
street2 TEXT,
street3 TEXT,
city TEXT NOT NULL,
postal us_postal_code NOT NULL
);
#참조
'개발 > 데이터베이스' 카테고리의 다른 글
[PostgreSQL] select, update, drop, alter, delete (0) | 2022.04.04 |
---|---|
[PostgreSQL] 데이터베이스/테이블 생성, 삭제 및 데이터 삽입 (0) | 2022.04.03 |
[PostgreSQL] 쉘 커맨드 정리 (0) | 2022.03.13 |
[PostgreSQL] 모두를 위한 PostgreSQL 2장 예제 풀이 (0) | 2022.03.13 |
[PostgreSQL] PostgreSQL 설치하기 ( Windows ) (0) | 2022.03.12 |