Подтвердить что ты не робот

MySQL Boolean "tinyint (1)" содержит значения до 127?

Я хотел создать истинное/ложное поле, если элемент находится в запасе.

Я хотел установить его в Boolean (который преобразуется в tinyint(1)), 1 на складе, 0 для не на складе.

Я получаю каналы от продавцов, поэтому я подумал про себя: "Что, если они пройдут, сколько инков?"

Итак, я подумал, вставил ли я число выше 1, что произойдет. Я предположил, что по умолчанию будет 1.

К моему удивлению, это позволит мне удерживать любое число до 127, все по умолчанию - 127.

Может кто-нибудь объяснить, почему?

4b9b3361

Ответ 1

Подписанный тип данных TINYINT может хранить целочисленные значения от -128 до 127.

Однако TINYINT(1) не изменяет минимальное или максимальное значение, которое он может сохранить. Он просто говорит, чтобы отображать только одну цифру, когда значения этого типа печатаются как выходные данные.

Ответ 2

В типе данных tinyint используется 1 байт хранилища. 256 возможных целых значений могут быть сохранены с использованием 1 байт (от -128 до 127). если вы определяете как tinyint unsigned, тогда отрицательные значения отбрасываются, поэтому можно хранить (от 0 до 255).

Ответ 3

См. здесь для того, как MySQL справляется с этим. Если вы используете MySQL > 5.0.5, вы можете использовать BIT как тип данных (в старых версиях BIT будет интерпретироваться как TINYINT(1). Однако (1) -part - это просто ширина отображения, а не внутренняя длина.