Mysql
MySQL自動增量失敗
我有一個表,其中有一列主鍵和 int(11) 數據類型的自動增量。
當我嘗試插入該表時,出現以下錯誤。 無法從儲存引擎查詢中讀取自增值
當我重新啟動 MySQL 服務時,它工作正常。
我確信這不是“超過自動增量數”的問題,因為當我嘗試從外部插入時,它會正確插入。
這個問題是自動增量還是其他問題。
基本上這是導致問題的 MySQL 中的錯誤,但解決方法很簡單。當表的 Auto-Increment 值超出限制時,就會出現問題。
只需在 MySQL 中執行此 SQL 查詢即可修復錯誤。
更改表
table_name
AUTO_INCREMENT =1Table_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
希望這會對其他人有所幫助。