我想在 MySQL 中创建一个默认值为 false的 boolean列表。但它默认接受 NULL..。
false
boolean
您必须指定 0(表示 false)或 1(表示 true)作为默认值:
0
1
create table mytable ( mybool boolean not null default 0 );
仅供参考: boolean是 tinyint(1)的别名。
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 表示 true/false,它给出并接受 true/false 值,而不需要任何额外的代码。
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,那么默认的“ default”值为 false; 您不必显式地指定它。