Mysql不会使用bigint存储大于9223372036854775808的数字

时间:2014-02-20 23:15:35

标签: mysql sql

我希望有一个简单的解决方法。我有一个数据库列,我在其中存储一个数字。我知道数字会变得很大,所以我将字段设置为'bigint'。但是,它不会存储大于9223372036854775808的数字。

为什么会这样?

3 个答案:

答案 0 :(得分:5)

引自the manual

  

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

答案 1 :(得分:3)

你已经达到了bigint的最大尺寸。由于数字存储在计算机上的方式,这是一个限制。它是您可以用8个字节表示的最大大小数。

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

答案 2 :(得分:1)

我认为你正在使用签名的BIGINIT:

签名bigint的范围:-9223372036854775808 - 9223372036854775807 无符号bigint的范围:0- 18446744073709551615

使用ALTER TABLE修改列:

ALTER TABLE t1 MODIFY col1 BIGINT UNSIGNED;