2015-09-25 55 views
2

如何使用PHP或SQL查詢更改MySQL數據庫中的Auto_Incriment值?如何使用PHP或SQL查詢更改MySQL數據庫中的Auto_Incriment值?

大家好,我有一個問題,當我在MySQL數據庫中保存我的php創建表單,因爲我已經給我的數據庫中的一個ID Auto_Incriment &其工作很好,但存在問題時,我刪除一個行讓我們說有ID = 3 & 4當我再次將我的PHP表單中的值存儲到我的數據庫中後,它給出ID = 5而不是給出3!

下面

是圖像enter image description here

所以是他們任何查詢,以糾正或任何PHP代碼,這樣我可以從數據庫獲取最後一排的ID,可以在DB遞增,然後再存放起來?

+1

這個問題已經被問了很多。最好留出差距。我們經常開玩笑說它是一個強迫症的事情,否則。你爲什麼只想離開它有很多原因 – Drew

回答

3

它可能不是你想要聽到的,但正如我在提問中提到的那樣,有理由說你爲什麼要放棄它並存在差距。

其中一個主要原因是不必要的重新排序(縮小數字),所有這些都是不必要的。

另一個原因是,您真正擁有子行的情況取決於您尚未建立外鍵(FK)約束的id,但id的匹配。

試圖聰明,重新洗牌的數字是要求麻煩。您的數據完整性以及最終健全的FK約束和非孤兒比解決此問題更爲重要。

什麼是孤兒?孤兒是沒有父母的孩子。如果子錶行依賴於另一個(父級)錶行,其行數爲id,並且您沒有父級,則該行將成爲孤兒。

也許更糟或更多的是通過做你建議的那樣讓孩子行指向錯誤的父母。

Mysql手冊頁Foreign Key Constraints

相關問題