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

molaifeng
博客专家认证
2012-07-10 10:19:14

+--------------+--------------+------+-----+---------+----------------+
| 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
...全文
1259 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
molaifeng 2012-07-11
  • 打赏
  • 举报
回复
哦,我明白了,感谢楼上各位大大的回答,公司里面的测试环境是装在linux下,默认的sql_mode值是空的,难怪会不报错。

具体的这里有介绍:
http://blog.csdn.net/yq495/article/details/7105128

ACMAIN_CHM 2012-07-11
  • 打赏
  • 举报
回复
[Quote]检查你公司的版本。

贴出你的 select version ();
show create table classifieds_general;
[/Quote]

show create table 贴在哪儿了?
WWWWA 2012-07-11
  • 打赏
  • 举报
回复
检查一下sql-mode
molaifeng 2012-07-11
  • 打赏
  • 举报
回复
+-------------+
| version() |
+-------------+
| 5.1.63 |
+-------------+
ACMAIN_CHM 2012-07-10
  • 打赏
  • 举报
回复
检查你公司的版本。

贴出你的 select version ();
show create table classifieds_general;
molaifeng 2012-07-10
  • 打赏
  • 举报
回复
恩,可是为什么在公司时,没有报警呢,我是在家里调式时报的警
rucypli 2012-07-10
  • 打赏
  • 举报
回复
越界的话mysql就存不越界的最大值
molaifeng 2012-07-10
  • 打赏
  • 举报
回复
恩,这个我知道,怎么我在公司里都是这么存储的,可是一回来时

+----+------------+
| id | tel |
+----+------------+
| 1 | 2147483647 |
| 2 | 2147483647 |
| 3 | 2147483647 |
| 4 | 2147483647 |
| 5 | 2147483647 |
| 6 | 2147483647 |
| 7 | 2147483647 |
| 8 | 2147483647 |
| 9 | 2147483647 |
| 10 | 2147483647 |
| 11 | 2147483647 |
| 12 | 2147483647 |
| 13 | 2147483647 |
| 14 | 2147483647 |
| 15 | 2147483647 |
| 16 | 2147483647 |
| 17 | 2147483647 |
| 18 | 2147483647 |
| 19 | 2147483647 |
| 20 | 2147483647 |
| 21 | 2147483647 |
| 22 | 2147483647 |

怎么在公司里没报错,那个数据库我是直接备份的,回来时一查,全成这样的了
rucypli 2012-07-10
  • 打赏
  • 举报
回复
这是int类型 和后面的11没一点关系

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

后面的字符只有在列属性有zerofill的时候才对客户端显示有效

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧