true - ¿Crear una columna booleana en MySQL con falso como valor predeterminado?
query boolean mysql (2)
Quiero crear una tabla en MySQL con una columna boolean
cuyo valor predeterminado es false
. Pero está aceptando NULL como predeterminado ...
Debe especificar 0
(que significa falso) o 1
(que significa verdadero) como valor predeterminado. Aquí hay un ejemplo:
create table mytable (
mybool boolean not null default 0
);
FYI: boolean
es un alias para tinyint(1)
.
Aquí está la prueba:
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: Mi prueba fue hecha en la siguiente versión de MySQL:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
Use ENUM en MySQL para verdadero / falso y acepta los valores verdadero / falso sin ningún código adicional.
ALTER TABLE `itemcategory` ADD `aaa` ENUM(''false'', ''true'') NOT NULL DEFAULT ''false''