2
今天我發現auto_increment
這幾個表的值都重置爲0.爲什麼?爲什麼MySQL表auto_increment被重置爲0?
- 滑軌2.3.x版本
- 的MySQL 5.0.x的
信息:
- 表通常是空的(行被創建,然後刪除)
- 服務器是
init 6
該應用程序取決於auto_increment id,所以我想知道防止這種情況再次發生。
今天我發現auto_increment
這幾個表的值都重置爲0.爲什麼?爲什麼MySQL表auto_increment被重置爲0?
信息:
init 6
該應用程序取決於auto_increment id,所以我想知道防止這種情況再次發生。
讓我猜你是在使用InnoDB。
InnoDB存儲引擎stores the auto increment count in memory;它在MySQL重新啓動時被重置。
解決方案是將最高值存儲在某個表的某個位置,並在系統啓動時將其恢復。或者,根據您的使用情況,您可能會發現保留單個MyISAM表格以提供AUTO_INCREMENT
值是有用的。
你可以找到一個彙編fun facts about AUTO_INCREMENT
here。
是的,它是InnoDB。我可以通過將表格從InnoDB轉換爲MyISAM來解決問題嗎? – ohho 2013-03-25 10:54:02
@ohho,你可以,但是你會失去InnoDB和MyISAM沒有的所有功能,比如支持事務和參照完整性。我不知道你是否使用這些。 – Joni 2013-03-25 12:17:17
非常感謝您的信息和解釋。我將審查代碼並據此進行。 – ohho 2013-03-25 13:17:56