SQL

[SQL] NOT NULL과 DEFAULT의 차이 (중복 사용?)

15호의 개발자 2022. 8. 24. 09:00
반응형

[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 에러가 뜬다.

  

 

 

 

 

 

 

(출처: https://stackoverflow.com/questions/11862188/sql-column-definition-default-value-and-not-null-redundant)

반응형