Je souhaite créer une table dans MySQL avec une boolean
colonne dont la valeur par défaut est false
. Mais il accepte NULL par défaut ...
Je souhaite créer une table dans MySQL avec une boolean
colonne dont la valeur par défaut est false
. Mais il accepte NULL par défaut ...
Réponses:
Vous devez spécifier 0
(ce qui signifie faux) ou 1
(ce qui signifie vrai) comme valeur par défaut. Voici un exemple:
create table mytable (
mybool boolean not null default 0
);
FYI: boolean
est un alias pour tinyint(1)
.
Voici la preuve:
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: Mon test a été effectué sur la version suivante de MySQL:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
Utilisez ENUM dans MySQL pour vrai / faux, il donne et accepte les valeurs vrai / faux sans aucun code supplémentaire.
ALTER TABLE `itemcategory` ADD `aaa` ENUM('false', 'true') NOT NULL DEFAULT 'false'
Vous pouvez définir une valeur par défaut au moment de la création comme:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Married boolean DEFAULT false);
Si vous rendez la colonne booléenne non nulle, la valeur par défaut «par défaut» est false; vous n'avez pas à le spécifier explicitement.