我有一个MySQL数据库的问题,某些东西必须搞砸了。我有一个包含几千行的表,带有一个自动增量键字段。但是,最近,当我尝试创建新行时,出现错误:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2147483647' for key 'PRIMARY'
即使没有那么多行,mysql以某种方式创建了一个主键2147483647
的行,我猜这是最大的。之后的下一个最高主键是2034
。
如果我只删除该行,则使用相同的密钥创建下一行,后续条目会导致相同的错误。
知道发生了什么或我如何解决它?
答案 0 :(得分:2)
您在数据库中的主键列上使用INTEGER
,INTEGER
2147483647是您可以拥有的最大值,因此无法再自动增加。
您可以将ID列切换为BIGINT
。
ALTER TABLE yourTable ALTER COLUMN yourPrimaryKeyColumn bigint