在MySQL中创建boolean列,默认值为false?

时间:2010-02-08 11:00:44

标签: mysql

我想在MySQL中创建一个包含boolean列的表,其默认值为false。但它接受NULL作为默认值......

4 个答案:

答案 0 :(得分:177)

您必须指定0(表示false)或1(表示true)作为默认值。这是一个例子:

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

仅供参考:booleantinyint(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)

答案 1 :(得分:11)

在MySQL中使用ENUM表示true / false它给出并接受true / false值而不需要任何额外的代码。

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

答案 2 :(得分:5)

您可以在创建时设置默认值,例如:

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

答案 3 :(得分:1)

如果将布尔列设置为不为null,则默认的'default'值为false;否则,默认值为false。您不必显式指定它。