我有一個有3000個條目的表格。 我隨機選擇25個轉移到另一個表。 完成此操作後,我希望原始表中的ID(被分配AUTO_INCREMENT並且是主鍵)順序排列,以便我可以執行下一次迭代。 我該怎麼做?刪除幾條記錄後如何在MySQL中重新排序AUTO_INCREMENT ID?
-1
A
回答
0
我們無法將auto_increment值更改爲除當前最大值之外的其他值.Auto_Increment是一個繼續遞增的計數器,其值用於定義它的列。
將其更改爲僅高於當前最大值的值的唯一方法是手動將AUTO_INCREMENT計數器的值更改爲max(value)+1。
所以我想在這裏,你必須在刪除25條記錄後按現有Id升序排列記錄,並根據增量變量手動設置每條記錄的id值,最後將AUTO_INCREMENT計數值設置爲變量的值在最後+1。
樣品:
ALTER表T SET AUTO_INCREMENT = SOME_VALUE;
雖然建議單獨離開AUTO_INCREMENT並且避免所有這些,只是爲了使ID看起來很棒而且沒有其他可能的原因。
+1
這是解決方案的1%。另外99%的人正在追蹤所有對這些值的引用並對其進行調整,並清除由此產生的混亂情況。 – tadman
相關問題
- 1. 如何在刪除行後重新排序表序號否
- 2. 如何在刪除記錄/數據後重新加載dataTable?
- 3. 笨排序ID後刪除
- 4. Mysql - 刪除重複記錄
- 5. mysql自動增量 - 記錄刪除後重新分配
- 6. 如何刪除重複記錄\觀察沒有排序在SAS?
- 7. 如何在插入新記錄後重新排序記錄,VBA,MS ACCESS
- 8. Android的SQLite的 - 如何更新記錄ID號刪除記錄
- 9. 幾分鐘後自動刪除記錄
- 10. 刪除記錄後如何對列重新編號
- 11. MYSQL將多條記錄中的記錄除外最新記錄
- 12. ,如何排除刪除的記錄
- 13. 如何在記錄刪除後從最後一次停止的位置創建id auto_increment?
- 14. 刪除行後使用PHP重新排序mysql表?
- 15. 在Mysql中禁用重新使用已刪除的記錄
- 16. 停止MySQL重用AUTO_INCREMENT ID
- 17. 如何一次刪除多條記錄?
- 18. 如何刪除MS SQL 2005中最新的20,000條記錄?
- 19. 在軌道中刪除多條記錄
- 20. MySQL記錄重複數據刪除
- 21. 如何使用ID刪除記錄?
- 22. 如何刪除mysql表中的重複記錄
- 23. 如何刪除mySQL重複條目
- 24. 如何從MySQL表中刪除重複記錄?
- 25. MySQL CrossTab並刪除重複記錄
- 26. 如何刪除使用PDO插入到MySQL表中的最後一條記錄?
- 27. 在MySQL中刪除兩個表中的ID匹配的記錄
- 28. 更新記錄,然後刪除
- 29. 如何刪除最後一個記錄
- 30. SELECT然後立即刪除mysql記錄
因此原始表格中的條目在移動之後被刪除? –
不要。這個問題可能每天都會被問到。答案是「不要這樣做」。作爲替代方法,您可以*創建一個新表,並使用新的PK自動遞增並將所有剩餘記錄移至該表。但爲什麼*?什麼讓你認爲主鍵*需要*始終是完美的順序? (提示:它不) – David
你不應該。主鍵可能是另一個表中的外鍵,也需要進行更改。如果你認爲你需要這樣做,那麼你做錯了什麼。 – AbraCadaver