我现在使用int(22)
作为我的表格字段。但是现在它溢出了值2147483647
并停止,所以我的 3000字段的ID相同。我真的很困惑
现在我用bigint(20)
无符号更改了它,但未来可能会有同样的情况。
请告诉我什么将更好地用于此
varchar
或bigint
或任何
如果我得到一些解释也会很棒。
答案 0 :(得分:6)
以这种方式思考:填写INT
需要多长时间?也许六个月?
现在将这个时间乘以大约40亿。
如果以相同的速率插入数据,那么填充BIGINT
需要多长时间。因此,如果花费您半年时间来填充INT
,则BIGINT
将持续20亿年。
这为您提供了BIGINT
范围比INT
大一些范围的范围。 BIGINT
支持最多2个 64 值,这比INT
中的值的数量大2 32 。
答案 1 :(得分:1)
NUMERIC
可以存储65位数字,大于BIGINT UNSINGED
mysql> create table integral (a bigint, b numeric(65,0));
Query OK, 0 rows affected (0.06 sec)
mysql> insert into integral (a) values(123456789012345678901234567890);
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+--------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------+
| Warning | 1264 | Out of range value for column 'a' at row 1 |
+---------+------+--------------------------------------------+
1 row in set (0.00 sec)
mysql> insert into integral (b) values(123456789012345678901234567890);
Query OK, 1 row affected (0.00 sec)