테스트 사이트 - 개발 중인 베타 버전입니다

db 스키마? 질문요 채택완료

프로그래머7 9년 전 조회 11,214

db 스키마 보면 궁금한게 있습니다.

분명히 Null 여부에는 not null 로 지정해도

Default에 Null이 나오는 것은 뭔가요?

예를 들면 아래처럼요

   

MariaDB [koreamsc]> desc g5_shop_cart;
+----------------+---------------------+------+-----+---------------------+----------------+
| Field          | Type                | Null | Key | Default             | Extra          |
+----------------+---------------------+------+-----+---------------------+----------------+
| ct_id          | int(11)             | NO   | PRI | NULL                | auto_increment |
| od_id          | bigint(20) unsigned | NO   | MUL | NULL                |                |
| mb_id          | varchar(255)        | NO   |     |                     |                |

 

 

| ct_history     | text                | NO   |     | NULL                |                |

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
필수 입력으로 하겠다는 뜻이겠죠
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

9년 전

null여부에 not null 지정하는 것과 default값의 null은 별개의 문제입니다.

 

1. 해당필드의 null여부 제약조건에 not null로 지정하였으므로, 해당필드의 값은, null이 될 수 없습니다.

2. 해당필드의 default 제약조건에는 아무런 값을 정의하지 않았으므로, default 제약조건이 (null)이라는 뜻입니다. null은 "값이 정의되지 않음"이라는 뜻입니다. 즉, default(기본값)라는 제약조건이 없는것입니다.

 

default 제약조건은, null이 들어올 경우에 그 기본값(default)을 무엇으로 할까요? 라는 것을 정의하는 곳입니다.

 

만약 not null필드인데, null이 들어올경우에

default(기본값)정의를 살펴보았더니, null(기본값 정의되지 않았음)이면 "Field '필드명' doesn't have a default value"라는 에러메시지가 출력되며 실행되지 않습니다. 

(not null필드인데 null이 들어왔으면, 기본값이라도 있어야 하는데 기본값이 없으니~~)

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

프로그래머7
9년 전
헉..글러빙 님 글을 채택한다고 클릭했는데 -_-;

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인