Mysql int (11) число вне диапазона - PullRequest
32 голосов
/ 03 августа 2011

У меня есть столбец, для которого установлено значение int(20), когда я пытаюсь вставить число типа 622108120237, оно говорит, что оно выходит за пределы допустимого диапазона.Почему?

Ответы [ 3 ]

48 голосов
/ 03 августа 2011

int с MySQL хранится в 4 байтах и ​​поэтому может содержать значения только от -2147483648 до 2147483647.

622108120237 больше 2147483647; поэтому он не вписывается в int - похоже, вам придется использовать bigint.

См. Типы данных - Числовые типы раздел
Руководство по MySQL, об этом.

40 голосов
/ 03 августа 2011

См. Документацию по числовому типу MySQL .Эти вещи хорошо документированы.

Диапазон для INT со знаком - [-2147483648, 2147483647].

Обратите внимание, что в случае INT(x), х равен "ширина дисплея" и не имеет ничего общего с требованиями к диапазону или пространству:

MySQL поддерживает расширение для необязательного указания ширины отображения целочисленных типов данных в скобках послебазовое ключевое слово для типа.Например, INT (4) задает INT с шириной отображения в четыре цифры ... ширина отображения не ограничивает [или не расширяет] диапазон значений, которые могут быть сохранены в столбце .

Счастливого кодирования.

4 голосов
/ 03 августа 2011

Максимальное значение, которое вы можете хранить в целом числе со знаком, равно 2147483647, а целое число без знака равно 4294967295. В обоих случаях вы превысите предел

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...