Chcę utworzyć tabelę w MySQL z boolean
kolumną, której domyślną wartością jest false
. Ale domyślnie akceptuje NULL ...
127
Musisz określić 0
(co oznacza fałsz) lub 1
(co oznacza prawda) jako domyślne. Oto przykład:
create table mytable (
mybool boolean not null default 0
);
FYI: boolean
to alias dla tinyint(1)
.
Oto dowód:
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: Mój test został wykonany na następującej wersji MySQL:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
Użyj ENUM w MySQL dla true / false, które podaje i akceptuje wartości true / false bez dodatkowego kodu.
źródło
Możesz ustawić wartość domyślną w czasie tworzenia, na przykład:
źródło
Jeśli ustawisz kolumnę boolowską jako inną niż null, domyślną wartością „default” jest false; nie musisz tego jawnie określać.
źródło