Я хочу создать таблицу в MySQL с столбцом boolean
, значение по умолчанию - false
. Но он принимает значение NULL как значение по умолчанию...
Создать логический столбец в MySQL с false в качестве значения по умолчанию?
Ответ 1
Вы должны указать 0
(значение false) или 1
(значение true) как значение по умолчанию. Вот пример:
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)
FYI: мой тест был выполнен в следующей версии MySQL:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
Ответ 2
Используйте ENUM в MYSQL для получения значения true/false и принимайте значения true/false без какого-либо дополнительного кода.
ALTER TABLE itemcategory
ADD aaa
ENUM ('false', 'true') NOT NULL DEFAULT 'false'