반응형
[SQL] NOT NULL과 DEFAULT의 차이 (중복 사용?)
NOT NULL과 DEFAULT 를 둘 다 선언할 필요가 있을까?
이에 대한 정답은, YES이다.
NOT NULL과 DEFAULT는 엄연히 구분되는 것으로
NOT NULL만 선언한 경우,
DEFAULT만 선언한 경우,
NOT NULL과 DEFAULT 둘 다 선언한 경우
위 세 경우는 모두 다른 경우이다.
1. NOT NULL만 선언한 경우
(a) 해당 컬럼을 아예 insert 하지 않았을 때
→ NOT NULL 동작
(b) 해당 컬럼에 NULL값을 넣어서 insert 했을 때
→ NOT NULL 동작
위 두 가지 경우 모두 에러가 난다.
2. DEFAULT만 선언한 경우
(a) 해당 컬럼을 아예 insert 하지 않았을 때
→ DEFAULT 동작
(b) 해당 컬럼에 NULL값을 넣어서 insert 했을 때
→ DEFAULT 동작하지 않음
(a)의 경우에만 DEFAULT 값이 들어간다.
(b)의 경우에는 NULL 값이 들어간 것으로 취급하여, DEFAULT 값이 들어가지는 않는다.
3. NOT NULL과 DEFAULT 둘 다 선언한 경우
(a) 해당 컬럼을 아예 insert 하지 않았을 때
→ DEFAULT 동작
(b) 해당 컬럼에 NULL값을 넣어서 insert 했을 때
→ NOT NULL 동작
(a)의 경우에는 DAFAULT로 설정한 기본값이 들어가며,
(b)의 경우에는 NOT NULL 에러가 뜬다.
반응형