В чем разница между типами данных столбцов MySQL BOOL и BOOLEAN? - PullRequest
79 голосов
/ 21 января 2011

Я использую MySQL версии 5.1.49-1ubuntu8.1. Это позволяет мне определять столбцы двух разных типов данных: BOOL и BOOLEAN. В чем различия между двумя типами?

Ответы [ 4 ]

127 голосов
/ 21 января 2011

Оба являются синонимами для TINYINT (1) .

23 голосов
/ 27 июля 2012

Как установлено в других комментариях, они являются синонимами для TINYINT (1).

* Итак, почему они беспокоятся о различении между bool, boolean, small * int (1)?

В основном семантика.

Bool и Boolean: MySQL по умолчанию преобразует их в тип tinyint. Согласно заявлению MySQL, сделанному во время написания этой статьи, «мы намерены реализовать полную обработку булевых типов в соответствии со стандартным SQL в будущем выпуске MySQL».

0 = ЛОЖЬ 1 = ИСТИНА

TINYINT: занимает один байт; колеблется от -128 до +127; или 0 - 256.


Обычно упоминается в этом сравнении: После MySQL 5.0.3 - Бит: использует 8 байтов и сохраняет только двоичные данные.

4 голосов
/ 01 июля 2011

Одна вещь, которую я только что заметил - с помощью столбца, определенного как BOOL в MySql, Spring Roo правильно генерирует код Java для отмены маршалирования значения в логическое значение, поэтому, предположительно, указание BOOL может добавить некоторое значение, даже если это только в природе подсказка о предполагаемом использовании колонки.

2 голосов
/ 21 января 2011

проверьте обзор документов MySQL по числовым типам:

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html

...