2011-06-27 21 views
0

最近,MySQL 5.1.49(OSX)开始为名为id的所有整数字段插入相同的值'2147483647'并将其设置为主键。所有数据库和所有表都会发生这种情况。下面是一个简单的例子:mysql int字段总是返回相同的值

mysql> INSERT INTO packages(id,name,rate) VALUES ('37364428662',"Testing","300"); 
Query OK, 1 row affected, 1 warning (0.00 sec) 

mysql> SELECT * FROM packages; 
+------------+---------+------+ 
| id   | name | rate | 
+------------+---------+------+ 
| 2147483647 | Testing | 300 | 
+------------+---------+------+ 
1 row in set (0.00 sec) 

mysql> 

我试图重新安装MySQL作为闲来无事似乎工作:/我会发布的任何解决方案,我管理,但同时任何帮助总是赞赏!

回答

1

这可能是因为你的id字段是一个32位整数,值37364428662将需要超过32位来存储。尝试将id的类型更改为无符号整数或更大的整数类型。

当您尝试输入37364428662时,它显示默认为int 32(2147483647)的最大可能值。

+0

谢谢德克!这是解决方案。必须已经忘记了我的CS 101课程可能的最大int ... – benipsen

+0

别担心。我从来不记得实际的价值,我不得不谷歌它。 – Dirk

0

您想插入一个值为37364428662的值,该值大于整数字段(2147483647)的最大允许大小。