2015-11-02 74 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