Je pense que vous devriez stocker cela comme un peu (si vous vous souciez de la taille du stockage) et laissez NULL
signifie "inconnu".
field bit(1) default NULL,
Il semble étrange de déclarer un champ not null
Et puis avoir une valeur particulière qui, essentiellement, signifie NULL
.
ÉDITER:
La syntaxe suivante "fonctionne" sur Violon SQL:
create table t (
val int,
flag tinyint(1) default -1
);
"Works" est en devis car la valeur par défaut imprime comme "1" plutôt que "-1" - après tout, le (1)
dit simplement imprimer un chiffre.
Peut-être que dans certaines versions antérieures de MySQL, cela génère une erreur quand il voit que -1
ne s'affichera pas correctement. (Pour être honnête, cela me surprendrait.)