日期:2014-05-16  浏览次数:22617 次

Out of range value for column 'tel' at row 1
SQL code

+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| name         | varchar(20)  | NO   |     |         |                |
| tel          | int(11)      | NO   |     | 0       |                |
| email        | varchar(60)  | NO   |     |         |                |
| state        | tinyint(4)   | NO   |     | 1       |                |
+--------------+--------------+------+-----+---------+----------------+

报的警是这个
UPDATE `classifieds_general` SET `name` = 'others', `tel` = '12345678901', `email` = 'molaifeng@foxmail.com', `state` = '1' WHERE `id` = '54'


为什么那个tel字段长度为11不行,而长度为10行呢,纳闷了我

mysql版本是 5.5.20

------解决方案--------------------
这是int类型 和后面的11没一点关系

int带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

后面的字符只有在列属性有zerofill的时候才对客户端显示有效
------解决方案--------------------
越界的话mysql就存不越界的最大值
------解决方案--------------------
检查你公司的版本。

贴出你的 select version ();
show create table classifieds_general;
------解决方案--------------------
检查一下sql-mode
------解决方案--------------------
引用检查你公司的版本。

贴出你的 select version ();
show create table classifieds_general;