J'utilise la version MySQL 5.1.49-1ubuntu8.1. Il me permet de définir des colonnes de deux types de données différents: BOOL
et BOOLEAN
. Quelles sont les différences entre les deux types?
Ils sont tous deux synonymes de TINYINT (1).
Comme établi dans d'autres commentaires, ce sont des synonymes de TINYINT (1).
* Alors, pourquoi se donnent-ils la peine de faire la différence entre bool, boolean, tiny * int (1)?
Surtout sémantique.
Bool et Boolean: MySQL par défaut les convertit en type tinyint. Selon une déclaration MySQL faite au moment de la rédaction de cet article, "Nous avons l'intention d'implémenter une gestion de type booléenne complète, conformément au SQL standard, dans une future version de MySQL."
0 = FAUX 1 = VRAI
TINYINT: occupe un octet; varie de -128 à +127; ou, 0 - 256.
Généralement mentionné dans cette comparaison: Après MySQL 5.0.3 - Bit: utilise 8 octets et stocke uniquement les données binaires.
Une chose que je viens de remarquer - avec une colonne définie comme BOOL dans MySql, Spring Roo génère correctement Java code pour dé-marshaller la valeur à un booléen, donc sans doute spécifier BOOL peut ajouter de la valeur, même si c'est uniquement sous la forme d'un indice sur l'utilisation prévue de la colonne.
consultez la vue d'ensemble des types de documents numériques MySQL:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html