SQLite | 테이블 (Table) | NOT NULL 제약 조건

컬럼에 저장하는 값으로 NULL을 금지하고 싶은 경우, 컬럼에 NOT NULL 제약 조건을 설정한다. 여기에 NOT NULL 제약 조건의 사용법에 대해 설명한다.

NOT NULL 제약 조건이란?

컬럼에 NOT NULL 제약 조건을 설정하면 해당 열에 NULL을 저장할 수 없다. NOT NULL 제약 조건을 컬럼에 설정하는 형식은 다음과 같다.

CREATE TABLE 테이블명 (컬럼명 NOT NULL, ...);

그러면 실제로 제약 조건을 설정해 보자. 다음과 같이 테이블을 만든다. name 컬럼에는 NOT NULL 제약 조건이 설정한다.

create table user (name text not null, address text);
sqlite> create table user (name text not null, address text);
sqlite> 

그러면 데이터를 추가해 보자. address 컬럼에는 NULL을 저장할 수 있다.

insert into user values ('dekuma', 'Korea');
insert into user values ('kimkc', null);
sqlite> insert into user values ('dekuma', 'Seoul');
sqlite> insert into user values ('kimkc', null);
sqlite> 

name 컬럼에 NOT NULL 제약 조건이 설정되어 있기에, NULL을 저장하려고 하면 “Error: NOT NULL constraint failed: user.name"라는 오류 메시지가 표시된다.

insert into user values (null, 'Busan');
sqlite> insert into user values (null, 'Busan');
Error: NOT NULL constraint failed: user.name
sqlite>

NOT NULL 제약 조건이 설정된 컬럼에 값을 지정하지 않고 데이터를 추가하는 경우도 자동으로 NULL로 저장이 되기에 같은 오류가 발생한다.

insert into user (address) values ('Daejun');
sqlite> insert into user (address) values ('Daejun');
Error: NOT NULL constraint failed: user.name
sqlite> 

데이터를 추가 할 때에 반드시 값이 설정될 필요가 있는 컬럼에는 NOT NULL 제약 조건을 설정하도록 하자.




최종 수정 : 2019-11-13