개인적으로 아직까지 잘 이해가 가지 않는 부분중의 하나가 MySQL 에서 null 문자열의 처리입니다.
MySQL 에서 NULL 문자의 표지는 \N 으로 표시합니다. ('\N' 이 아닙니다)
mysql> create table tt (aa text not null);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into tt values (\N);
ERROR 1048: Column 'aa' cannot be null
이걸 보시면 null 의 입력을 받아 들이지 않는다는 것을 알수 있습니다. 그럼 '' 이라는 것은 NULL 문자로 취급되지 않는다는 것을 알수 있습니다. 이유는 뭘까요.
그에 대한 해답은 아직도 얻질 못하고 있는 형편입니다. 부디 공부하시면 가르쳐 주세요.
> 수고하십니다. ^_^
>
> MySQL을 하다가 테이블을 만들 때 null 과 not null의 차이를
> 공부하다가 질문을 드립니다.
>
> 책에는 not null로 데이터 타입을 선언할 경우
> 그곳에 null 을 집어넣으면 에러를 낸다고 나와있습니다.
>
> 그런데 제가 테스트 해 본 것에 의하면
> 그냥 받아들입니다.
>
> Create Table abc ( fbi varchar(40) not null);
>
> mysql> Insert Into abc Values (''); <-- TEST한 문장.
> Query OK, 1 row affected (0.oo sec)
>
> mysql> Insert Into abc Values ('null');
> Query OK, 1 row affected (0.oo sec)
|