为什么我插入的行中的值与插入查询中的值不匹配?

时间:2010-04-17 05:06:40

标签: mysql ruby-on-rails

我只是无法理解为什么我的数据库(mysql)表现得像这样!我的控制台显示记录已正确创建(请注意“remote_id”值):

推文创建(0.3毫秒)

INSERT INTO `tweets` (`remote_id`, `text`, `user_id`, `twitter_account_id`)
              VALUES (12325438258, 'jamaica', 1, 1)

但是当我检查记录时,它显示remote_id是2147483647提供的值的intead(上例中的12325438258)......

这个表有很多条目,但是这个字段总是用2147483647写的...它应该用一个唯一的id填充这个空间(我保证你正确生成它)。

3 个答案:

答案 0 :(得分:7)

这是因为您使用的INT数字类型的限制为'2147483647',请改用BIGINT

来源:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

答案 1 :(得分:3)

我的猜测是,您尝试插入的值对于列来说太大了。该数字是可疑的,因为它是32位有符号整数的最大值。

列类型INT?要存储该值,您应该将其设为BIGINT。请参阅MySQL手册中的Numeric Types

答案 2 :(得分:0)

很明显,您使用的是较小的值,因此您需要使用较大的类型,如BigInt(在应用程序中使用long或int64