[PostgreSQL] CHECK constraint

도톨이·2024년 4월 1일
0

SQL

목록 보기
14/19

CHECK

체크 제약에 대해 알아보자.
CHECK 제약을 사용하면 삽입된 모든 값이 특정 정수값 밑으로 떨어지는 지 확인하는 등의 보다 맞춤화된 제약 조건을 만들 수 있다.

CREATE TABLE example(
	ex_id SERIAL PRIMARY KEY,
    age SMALLINT CHECK (age > 21),
    parent_age SMALLINT CHECK (
    	parent_age > age)
        );
CREATE TABLE employees(
	emp_id SERIAL PRIMARY KEY,
	first_name VARCHAR(50) NOT NULL,
	last_name VARCHAR(50) NOT NULL,
	birthdate DATE CHECK (birthdate > '1900-01-01'),
	hire_date DATE CHECK (hire_date > birthdate),
	salary INTEGER CHECK (salary > 0)
)

pgadmin 에서 이렇게 테이블을 만들 수 있다.

이제 값들을 추가해보자.
employees 테이블에 하나의 행을 삽입할 건데,

INSERT INTO employees(
first_name, 
	last_name,
	birthdate,
	hire_date,
	salary

)
VALUES
('Jeon',
 'aengzu',
 '2001-08-20',
 '2020-01-01',
 100
)

실행해보면 제대로 데이터가 들어갔음을 확인할 수 있다.

만약 조건을 안지키고 봉급에 음수를 넣으면 에러가 뜬다.

그런데 SERIAL 넘버는 실패가 있어도 카운팅 된다는 것을 확인할 수 있다.

profile
Computer Engineering

0개의 댓글

관련 채용 정보