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

Ошибка MySQL 1264: значение вне диапазона для столбца

Как я SET cust_fax в таблице в MySQL, как это:

cust_fax integer(10) NOT NULL,

а затем вставляем значение следующим образом:

INSERT INTO database values ('3172978990');

но затем он скажет

`ошибка 1264` вне значения для столбца

И я хочу знать, где ошибка? Мой сет? Или другое?

Любой ответ будет оценен!

4b9b3361

Ответ 1

Целое число 3172978990 больше, чем 2147483647, следовательно, ошибка **.

Чтобы исправить ошибку, измените тип данных на VARCHAR. Телефон, Факс и т.д. Должны храниться в виде строк. См. эту дискуссию.

** Вот диаграмма, в которой указывается, какой тип целого может хранить какие значения.

Ответ 2

Вы превышаете длину типа int. Вы можете использовать атрибут UNSIGNED для поддержки этого значения.

ПОДПИСАНО INT может поддерживать до 2147483647 и UNSIGNED INT позволяет удвоить это. После этого вы все равно хотите сохранить данные, чем использовать CHAR или VARCHAR с длиной 10

Ответ 3

Вы также можете изменить тип данных на bigInt, и это решит вашу проблему, поэтому не рекомендуется хранить целые числа в виде строк, если в этом нет необходимости. :)

ALTER TABLE T_PERSON MODIFY mobile_no BIGINT;

Ответ 4

Используйте без знака. int = от 0 до 4294967295

или VARCHAR