[mysql] 기본값으로 false를 사용하여 MySQL에서 부울 열을 만드시겠습니까?

boolean기본값이 인 열 을 사용하여 MySQL에서 테이블을 만들고 싶습니다 false. 하지만 기본적으로 NULL을 받아들이고 있습니다.



답변

기본값으로 ( 0거짓을 의미) 또는 1(참을 의미 ) 를 지정해야 합니다. 예를 들면 다음과 같습니다.

create table mytable (
     mybool boolean not null default 0
);

FYI : boolean는의 별칭입니다 tinyint(1).

증거는 다음과 같습니다.

mysql> create table mytable (
    ->          mybool boolean not null default 0
    ->     );
Query OK, 0 rows affected (0.35 sec)

mysql> insert into mytable () values ();
Query OK, 1 row affected (0.00 sec)

mysql> select * from mytable;
+--------+
| mybool |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

참고 : 내 테스트는 다음 버전의 MySQL에서 수행되었습니다.

mysql> select version();
+----------------+
| version()      |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)


답변

참 / 거짓에 대해 MySQL에서 ENUM을 사용하면 추가 코드없이 참 / 거짓 값을주고받습니다.

ALTER TABLE `itemcategory` ADD `aaa` ENUM('false', 'true') NOT NULL DEFAULT 'false'


답변

다음과 같이 생성시 기본값을 설정할 수 있습니다.

CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Married boolean DEFAULT false);


답변

부울 열을 null이 아닌 것으로 만드는 경우 기본 ‘기본값’값은 false입니다. 명시 적으로 지정할 필요가 없습니다.


답변