Mysql

MySQL自動增量失敗

  • March 19, 2013

我有一個表,其中有一列主鍵和 int(11) 數據類型的自動增量。

當我嘗試插入該表時,出現以下錯誤。 無法從儲存引擎查詢中讀取自增值

當我重新啟動 MySQL 服務時,它工作正常。

我確信這不是“超過自動增量數”的問題,因為當我嘗試從外部插入時,它會正確插入。

這個問題是自動增量還是其他問題。

基本上這是導致問題的 MySQL 中的錯誤,但解決方法很簡單。當表的 Auto-Increment 值超出限制時,就會出現問題。

只需在 MySQL 中執行此 SQL 查詢即可修復錯誤。

更改表table_name AUTO_INCREMENT =1

Table_name 是您在向其中插入數據時發現錯誤的表的名稱。即使您的表中有記錄,也不要擔心 Auto_Increment 值。

我在帶有 bigint(20) 鍵的表上看到了相同的錯誤消息,並查看了

mysql>show table status like 'my_big_table';

這顯示了:

Auto_increment: 0

什麼時候應該是:

Auto_increment: 2157452851

(因為插入的最後一行的鍵值為 2157452850)沒有解釋為什麼 Auto_increment 變為 0,但它阻止了我們的應用程序的插入。

我試圖ALTER TABLE改變 Auto_increment 值,但很明顯整個表都將被重建,在這個大小的表上需要很多小時,所以我取消了更改。

我找到的解決方案是顯式添加具有下一個鍵值的行:

mysql> INSERT INTO `my_big_table` VALUES (2157452851,22808084,71,36376,'2013-03-16 15:09:55','2013-03-16 15:07:18','2013-03-16 15:09:55','Sent',NULL,7426);
Query OK, 1 row affected (0.03 sec)

這更正了 Auto_index 值。

mysql> show table status like 'my_big_table'\G
Auto_increment: 2157452852

希望這會對​​其他人有所幫助。

引用自:https://serverfault.com/questions/273074