我只是想知道,如果存在的根據本內容的MySQL表的自動增量自動復位爲最低值的優雅的方式。自動設置的MySQL自動增量到最小值
例如:
MYTABLE:
1 content of row 1
2 content of row 2
3 content of row 3
4 content of row 4
5 content of row 5
現在的自動增量將在6
但在此之前我插入了新的內容,我刪除的行3,4和5的內容看起來像這樣:
1 content of row 1
2 content of row 2
自動增量仍然是6.
這就是問題所在。
我想autoincrement爲3,因爲它是根據插入的ID的最低可能值。
的將阻止非常大的數字,如果自動增量將增長「無限」,走出的12位長整型的範圍。
感謝您的任何建議!
我下面提供的答案,但我要評論說,在大多數情況下,automincrement場的實際值是沒有意義的,所以努力保障和持續訂單從1到任何最高值是沒有必要的。您也可以隨意使用允許值高達'18446744073709551615'的BIGINT數據類型。我猜測這應該足以滿足大多數用例。因此,您對無限擴展的擔憂不應成爲您設計應用程序的工作原因。 –
等什麼?我的id = 3的文檔已經完全改變了?誰做到了,發生了什麼事?混亂! '' confused user>'(即:如果你可以避免它,請不要回收ID) – Wrikken
@Wrikken的好評 - 這是爲什麼在大多數使用自動增量主鍵的表中,你永遠不應該刪除。如果您需要「刪除」或取消激活某個項目,您通常可以通過添加值爲0或1的TINYINT「已刪除」列來輕鬆完成此操作,以指示項目是否應被視爲可供使用。 –