我希望有一个简单的解决方法。我有一个数据库列,我在其中存储一个数字。我知道数字会变得很大,所以我将字段设置为'bigint'。但是,它不会存储大于9223372036854775808
的数字。
为什么会这样?
答案 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;