2014-02-20 24 views
-1

我希望有一个简单的修复此。我有一个数据库列,其中存储了一个数字。我知道这些数字会变得很大,所以我把这个字段设置为'bigint'。但它不会存储大于9223372036854775808的数字。Mysql将不会存储数字大于9223372036854775808与bigint

这是为什么?

+1

如果您将其设置为无符号,则可以存储双倍金额 – Joren

+0

-1:您应该养成使用参考材料的习惯。 –

+1

相关:http://stackoverflow.com/questions/7142604/what-to-do-when-you-need-integers-larger-than-20-digits-on-mysql – Joren

回答

5

the manual引用:

BIGINT [(M)] [UNSIGNED] [ZEROFILL]
甲大的整数。签署的范围是-9223372036854775808到9223372036854775807无符号的范围是0到18446744073709551615.

3

你打BIGINT最大尺寸。这是由于号码存储在计算机上的方式造成的限制。这是您可以用8个字节表示的最大尺寸数量。

如果您需要存储更大的数字,请考虑使用其他方法。你可以使用varchars,但是如果你正在做数学运算的话你需要进行转换。

1

我认为您使用的是签署BIGINIT:

一个符号的BIGINT范围: - :0〜18446744073709551615

使用ALTER TABLE来修改列-9223372036854775808 9223372036854775807 无符号BIGINT范围:

ALTER TABLE t1 MODIFY col1 BIGINT UNSIGNED;