У меня есть столбец, который установлен в int(20)
, когда я пытаюсь вставить число, подобное 622108120237
, оно говорит, что оно выходит за пределы диапазона. Почему?
Mysql int (11) номер за пределами диапазона
Ответ 1
int
, с MySQL, хранится в 4 байтах и, как таковой, может содержать только значения между -2147483648
и 2147483647
.
622108120237
больше, чем 2147483647
; поэтому он не вписывается в int
- похоже, вам придется использовать bigint
.
Смотрите раздел Datatypes - числовые типы. Руководство по MySQL, об этом.
Ответ 2
См. документацию по численному типу MySQL. Эти вещи хорошо документированы.
Диапазон для подписанного INT
- [-2147483648, 2147483647].
Обратите внимание, что в случае INT(x)
x является "шириной отображения" и не имеет ничего общего с требованиями к диапазону или пространству:
MySQL поддерживает расширение для необязательного указания ширины отображения целочисленных типов данных в круглых скобках, следующих за ключевым словом для этого типа. Например, INT (4) указывает INT с шириной отображения четырех цифр... Ширина отображения не ограничивает [или расширяет] диапазон значений, которые могут быть сохранены в столбце.
Счастливое кодирование.
Ответ 3
Максимальное значение, которое вы можете сохранить в значении целого числа, равно 2147483647 И unsigned int is 4294967295 в обоих случаях вы превысите предел