我有一個超過17000行的mysql表格。我從中間刪除了大約530行。現在每行都有一個連續的AUTO-INCREAMENTED數字主鍵。正如你現在可以理解的,現在幾行數字已被刪除。所以我只是想問,有沒有辦法以一種完美的順序再次修復所有的行?在我們刪除了一些mysql表格後,修復了mysql表格ID
回答
您可以但要小心使用這個主鍵作爲外鍵
SET @count = 0;
UPDATE table SET table.id = @count:= @count + 1;
其他表的這將更新表table
的id
列...然後需要重置AUTO_INCREMENT:
ALTER TABLE table AUTO_INCREMENT = 1;
這將重置下一個ID是從docsMAX(id)+1
:
要更改AUTO_INCREMENT計數器的值將用於新 行,這樣做:
ALTER TABLE t2 AUTO_INCREMENT = value;
您可以將計數器不重置爲小於或等於任何 已經值用過的。對於MyISAM,如果該值小於或等於 當前在AUTO_INCREMENT列中的最大值,該值 重置爲當前最大加一
非常感謝你@manseUK – 2012-02-23 15:58:33
+1很棒的班輪查詢。我只是想知道爲什麼有人需要這樣做?無論如何,除非您的櫃檯即將達到極限,否則'id'列中的空白是如何的[呃,因爲您應該開始考慮使用GUID]。 – Fr0zenFyr 2013-09-13 13:35:19
在ID爲外鍵的情況下,該代碼可以在相同時間應用於其他表格,還有其他風險嗎? 「其他表」對我來說不是問題。 – 2017-03-27 02:50:40
- 1. MySQL表單元格除了
- 2. 在MySql中刪除除了一個之外的所有表格
- 3. mysql - 我刪除了用戶表!我怎樣才能恢復它?
- 4. 誰刪除了mysql數據庫中的所有表格
- 5. MySQL「記得」刪除了InnoDB表
- 6. MySQL/Percona 5.6:在表格被修改後插入表格
- 7. 在Rails中刪除MySQL表格
- 8. Self Join刪除了幾個表格
- 9. 刪除了Lua表格庫嗎?
- 10. 刪除多個單元格後,uitableview添加了一些行
- 11. 全部刪除重複值,除了一個在MySQL數據庫表
- 12. Mysql將數據插入表格,除了一個字段有重複數據
- 13. 在MySQL中複製表格
- 14. MySQL:改變表格並刪除重複的唯一鍵
- 15. MySQL授權,除了一個表
- 16. MySQL瞭解表
- 17. 正在刪除的表格中刪除了標識
- 18. mysql表格和刪除策略
- 19. HTML表格中的MYsql。刪除行
- 20. 如何刪除mysql表中的空格?
- 21. 如果在另一行發現了id,MySQL刪除行
- 22. sqlachemy創建了mysql表,但我修改了表,現在說'unknown column url'
- 23. 如何刪除除了價格一切?
- 24. 重置表格字段,除了一個
- 25. 我已經創建了一個具有相同名稱的新表格後,如何取消刪除BigQuery表格?
- 26. 使用Bootstrap響應式表格和AngularJS修復了第一列
- 27. MySQL:重複插入表格
- 28. MySQL表只在修復後崩潰
- 29. 從表中刪除mySQL重複項。我究竟做錯了什麼?
- 30. 選擇了MySQL表
我只是想知道爲什麼你需要做到這一點?無論如何,除非您的櫃檯即將達到極限,否則'id'列中的空白是如何的[呃,因爲您應該開始考慮使用GUID]。 – Fr0zenFyr 2013-09-13 13:37:00