그럼 default값으로 숫자 0을쓰고 싶은데여..이럴땐 어떻게 해줘야 null이 아닌 0으로 나오나요?
답변 좀 해주세요
>>허정수 님께서 쓰시길<<
:: 테이블 정의할 때의 NOT NULL은 uid가 PRIMARY KEY이기 때문에 그렇구요...
::
:: 그리고 AUTO_INCREMENT로 컬럼을 만들면 무조건 디폴트가 NULL 입니다.
::
:: 보통 INSERT로 레코드 삽입할 때, AUTO_INCREMENT 컬럼에는
::
:: INSERT INTO table_name VALUES( NULL ) ;
::
:: 이렇게 입력하잖아요...
::
:: 그니깐 디폴트가 NULL..
::
:: 이해가 되시려나.
::
:: 그럼
::
:: >>natalie 님께서 쓰시길<<
::
:: :: 테이블을 생성하는데요.
:: ::
:: ::
:: :: 1 create table book1(
:: :: 2 uid mediumint(9) unsigned default '0' not null auto_increment,
:: :: 3 name varchar(12) default '' not null,
:: :: 4 email varchar(40),
:: :: 5 homepage varchar(60),
:: :: 6 comment text not null,
:: :: 7 signdate int(10) unsigned default '0' not null,
:: :: 8 clienthost varchar(20),
:: :: 9 primary key(uid)
:: :: 10 );
:: ::
:: :: 위와 같이 book1.sql이란 파일로
:: :: 만들어서
:: ::
:: :: mysql -u user -p guestbook < book1.sql
:: ::
:: :: 이라구 해줬거든요
:: :: guestbook이란 데이타베이스에
:: :: book1.sql에 있는 정의대로
:: :: 테이블을 생성했는데요.
:: :: 프라이멀 키로 지정된 uid를 보면요
:: :: not null로 default를 숫자 0으로 지정해
:: :: 줬는데 default에 null로 나오거든요..
:: :: 아래처럼요.
:: ::
:: :: mysql> desc book1;
:: :: +------------+-----------------------+------+-----+---------+----------------
:: +
:: :: | Field | Type | Null | Key | Default | Extra
:: |
:: :: +------------+-----------------------+------+-----+---------+----------------
:: +
:: :: | uid | mediumint(9) unsigned | | PRI | NULL | auto_increment
:: |
:: :: | name | varchar(12) | | | |
:: |
:: :: | email | varchar(40) | YES | | NULL |
:: |
:: :: | homepage | varchar(60) | YES | | NULL |
:: |
:: :: | comment | text | | | |
:: |
:: :: | signdate | int(10) unsigned | | | 0 |
:: |
:: :: | clienthost | varchar(20) | YES | | NULL |
:: |
:: :: +------------+-----------------------+------+-----+---------+----------------
:: +
:: ::
:: :: 위에 보면 signdate는 uid하구 같게
:: :: 지정해 줬는데 올바로 default에 숫자 0이
:: :: 나오는데 uid는 null이라구 나와요
:: :: 이거 왜 이래요?
:: :: 제가 멀 잘못 정의했나요?
:: :: 답변 부탁드려요..
:: ::
|