Я не хочу быть разборчивым, но почему в тот момент, когда вы определяете столбец таблицы как логический, в следующий раз, когда вы пытаетесь вернуть структуру таблицы, она возвращается как tinyint (1)?
Так что длячто касается таблицы, созданной с помощью
CREATE TABLE IF NOT EXISTS `test` (
`aField` BOOLEAN DEFAULT true
);
В тот момент, когда я пытаюсь получить ее структуру с
SHOW COLUMNS FROM test
, я получил
+--------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| aField | tinyint(1) | YES | | 1 | |
+--------+------------+------+-----+---------+-------+
У меня нет (большой) проблема с тем фактом, что логическое значение хранится как tinyint (1), но у меня есть проблема с тем фактом, что в тот момент, когда вы видите tinyint (1), вы не знаете, было ли оно изначально создано как логическое значение иликак крошечный int для хранения диапазона малых чисел . Я видел документацию MySQL (https://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html) о том, что
BOOL, BOOLEAN Эти типы являются синонимами для TINYINT (1)
, но я не согласен с вышеизложеннымупомянутая проблема.
Можно ли выполнить какой-либо другой запрос, который вернет мне исходный (логический) тип поля?