在MySQL中创build布尔列作为默认值为false?

我想在MySQL中创build一个默认值为falseboolean列的表。 但它接受NULL作为默认值…

你必须指定0 (意思是false)或者1 (意思是true)作为默认值。 这里是一个例子:

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

仅供参考: booleantinyint(1)的别名。

这是certificate:

 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) 

仅供参考:我的testing是在以下版本的MySQL上完成的:

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

在MYSQL中使用ENUM是true / false,它给出并接受true / false值,没有任何额外的代码。

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