Ошибка MySQL 1264: значение вне диапазона для столбца
Как я SET
cust_fax в таблице в MySQL, как это:
cust_fax integer(10) NOT NULL,
а затем вставляем значение следующим образом:
INSERT INTO database values ('3172978990');
но затем он скажет
`ошибка 1264` вне значения для столбца
И я хочу знать, где ошибка? Мой сет? Или другое?
Любой ответ будет оценен!
Ответы
Ответ 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