2015-11-02 58 views
0

我有一个MySQL数据库的问题,有些地方必须弄乱某些东西。我有一个有几千行的表格,带有一个自动增量键字段。然而,最近,当我尝试创建一个新行时,出现错误:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2147483647' for key 'PRIMARY'MySQL问题 - 使用最大值自动递增字段

即使没有那么多行,mysql也以某种方式创建了一个主键为2147483647的行,我猜它是最大的。在那之后的下一个最高主键就像2034

如果我简单地删除那一行,则下一个将使用相同的键创建,并且随后的条目会导致相同的错误。

任何想法发生了什么事情或我可以如何解决它?

+0

您的代码和/或查询在哪里试图插入新行? – Alex

+0

删除该行,然后使用'ALTER TABLE tablename AUTO_INCREMENT = x' – Barmar

回答

2

您在数据库的主键列上使用的是INTEGER,而INTEGER 2147483647是您可以拥有的最大的一个,所以它不能再自动增加。

您可以将您的id列切换到BIGINT

ALTER TABLE yourTable ALTER COLUMN yourPrimaryKeyColumn bigint