Я хочу создать таблицу в MySQL со boolean
столбцом, значение по умолчанию которого false
. Но по умолчанию он принимает NULL ...
Я хочу создать таблицу в MySQL со boolean
столбцом, значение по умолчанию которого false
. Но по умолчанию он принимает NULL ...
Ответы:
Вы должны указать 0
(значение false) или 1
(значение true) по умолчанию. Вот пример:
create table mytable (
mybool boolean not null default 0
);
К вашему сведению: 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)
Используйте ENUM в MySQL для истинности / ложности, он дает и принимает значения истина / ложь без какого-либо дополнительного кода.
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);
Если вы делаете логический столбец ненулевым, тогда значение по умолчанию по умолчанию - false; вам не нужно явно указывать это.