Desde mi mesa de crear un script, he definido el campo hasMultipleColors como BIT:MySQL valores siempre volviendo tan blanco
hasMultipleColors BIT NOT NULL,
Cuando se ejecuta una instrucción INSERT, no hay advertencias lanzadas para esta o la otra BIT campos, pero la selección de las filas muestra que todos los valores BIT están en blanco.
tratando manualmente actualizar estos registros desde la línea de comandos da efecto extraño - muestra que el registro fue partido y cambió (en su caso), pero aún así siempre se muestra en blanco.
versión del servidor: 5.5.24-0ubuntu0.12.04.1 (Ubuntu)
mysql> update pumps set hasMultipleColors = 1 where id = 1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> select hasMultipleColors from pumps where id = 1;
+-------------------+
| hasMultipleColors |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
mysql> update pumps set hasMultipleColors = b'0' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select hasMultipleColors from pumps where id = 1;
+-------------------+
| hasMultipleColors |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
¿Alguna idea?
¿Por qué no estás usando 'BOOL' en lugar de' BIT' para eso? De la semántica de su nombre de campo, tendría más sentido. – Romain
Hice algunas lecturas con respecto a los tipos de datos BOOL frente a BIT frente a TINYINT, y lo que obtuve fue que MySQL maneja BOOL de una manera muy pobre, no portátil para otras soluciones RDBMS, por lo que generalmente es ideal para TINYINT o BIT (más eficiente). – CdrXndr