Chinaunix首页 | 论坛 | 博客
  • 博客访问: 329901
  • 博文数量: 100
  • 博客积分: 2620
  • 博客等级: 少校
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 02:50
文章分类

全部博文(100)

文章存档

2011年(5)

2010年(12)

2009年(83)

分类: 数据库开发技术

2010-01-10 15:41:32

 
mysql int类型越界的问题
 
    数据类型是int(11),最大值达到2147483647(pow(2,31)-1)后就再也上不去了;比如update的时候采用2147483645+5,本来应该是2147483650,但是值还是2147483647;越界也没有回绕而变成负值,而只是加到最大值;不知道mysql为什么这么做;此时 update的结果是:
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 1
 
数据没有改变,但是有一个警告,通过:show warnings;查看警告内容:
+---------+------+------------------------------------------------------------+
| Level   | Code | Message                                                    |
+---------+------+------------------------------------------------------------+
| Warning | 1264 | Out of range value adjusted for column 'Quantity' at row 1 |
+---------+------+------------------------------------------------------------+
1 row in set (0.00 sec)
    另外:警告内容也可以通过连接mysql的时候指定--show-warnings选项来指定;指定之后就自动显示警告内容了
阅读(2596) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~