use*_*456 56 mysql database integer auto-increment
我有一个数据库,快速填充我们每天10-20k行的数据.
ID和自动增量选项的限制是多少?如果ID被创建为INTEGER,那么我可以为无符号值做最大值2,147,483,647?
但是当自动增量高于此值时呢?这一切都崩溃了吗?那会有什么解决方案呢?
我相信很多人都拥有大型数据库,我想听听他们的意见.
谢谢.
Dan*_*ong 62
如果你担心它过快地超出界限,我会将PK设置为UNSIGNED BIGINT.这样您的最大值为18446744073709551615,这应该足够了.
evi*_*iko 31
| Min. (inclusive) | Max. (inclusive)
-----------------------------------------------------------------------------
INT Signed (+|-) | -2,147,483,648 | 2,147,483,647
-----------------------------------------------------------------------------
INT Unsigned (+) | 0 | 4,294,967,295
-----------------------------------------------------------------------------
BIGINT Signed (+|-) | -9,223,372,036,854,775,807 | 9,223,372,036,854,775,806
-----------------------------------------------------------------------------
BIGINT Unsigned (+) | 0 | 18,446,744,073,709,551,615
Run Code Online (Sandbox Code Playgroud)
如果您的mysql表具有列ID(INT unsigned),并且该表有4,294,967,295条记录,那么您尝试再插入1条记录,新记录的ID将自动更改并设置为最大值"4,294,967,295",因此Duplicate entry '4294967295' for key 'PRIMARY',如果将列设置为主键,则会收到MySQL错误消息,您将拥有重复的ID.
2可能的解决方案
| 归档时间: |
|
| 查看次数: |
32587 次 |
| 最近记录: |