Я использую MySQL версии 5.1.49-1ubuntu8.1. Это позволяет мне определять столбцы двух разных типов данных: BOOL
и BOOLEAN
. Каковы различия между этими двумя типами?
Какая разница между типами данных столбцов MySQL BOOL и BOOLEAN?
Ответ 1
Они оба являются синонимами для TINYINT (1).
Ответ 2
Как указано в других комментариях, они являются синонимами для TINYINT (1).
* Итак, почему они хотят различать bool, boolean, tiny * int (1)?
В основном семантика.
Bool и Boolean: MySQL по умолчанию преобразует их в тип tinyint. За выражение MySQL, сделанное во время написания этой статьи, "Мы намерены реализовать полную обработку логических типов в соответствии со стандартным SQL в будущей версии MySQL".
0 = FALSE 1 = TRUE
TINYINT: занимает один байт; варьируется от -128 до +127; или 0 - 256.
Общепринятый в этом сравнении: После MySQL 5.0.3 - бит: использует 8 байтов и сохраняет только двоичные данные.
Ответ 3
Одна вещь, которую я только что заметил - с столбцом, определенным как BOOL в MySql, Spring Roo правильно генерирует Java-код, чтобы развязать значение с булевым, поэтому предположительно указание BOOL может добавить некоторое значение, даже если оно только в природе намека на предполагаемое использование столбца.
Ответ 4
проверить обзор документов DOM в формате MySQL:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html