我正在使用一個項目的數據庫插入東西,我有一個自動增量。但是,隨機地,自動增量ID開始計數錯誤。關閉自動增加5個數字?
例如,當我插入另一行的最後一個表中有227的ID,它應該自動將其指定爲228,而是它跳到232.如何解決這個問題?
我正在使用一個項目的數據庫插入東西,我有一個自動增量。但是,隨機地,自動增量ID開始計數錯誤。關閉自動增加5個數字?
例如,當我插入另一行的最後一個表中有227的ID,它應該自動將其指定爲228,而是它跳到232.如何解決這個問題?
自動增量並不意味着使用表格中下一個最高數字。
有幾個原因自動增加的編號是不連續的。
很可能有一些其他情況然而這將導致此。
要回答「我該如何解決這個問題?」的問題,不要打擾,ID應該是唯一的,沒有別的,ID連續通常沒有用(除非你正在做分頁假設他們是連續的,這是一個不好的假設)。
自動增量編號可以提前由數據庫服務器收集。而不是隻得到一個要求的數據庫,數據庫有時會得到5(或10或100),並更新下一個數字的長期存儲,以分配下一個+5(或10或100)。然後下一次分配下一個分配給內存的速度要快得多,特別是因爲它不必將下一個分配給磁盤。
時間表:
存儲+ 2 ...等。
但是,如果它給了所有的數字之前,DB服務器被停止,它將重新啓動然後當它會尋找下一個號碼並找到+ 100 - 因此缺口。自動編號一般保證發出不斷增加的值,並且應該始終是唯一的(注意當達到最大值時發生的情況)。他們通常但不總是連續的。(Oracle對於Sequences有相同的作用,我已經用了一段時間,但是有了一個序列,你可以指定一個緩存大小,保證順序分配的唯一方法是讓緩存大小爲零,這是較慢的)
除非你刪除了228到231行(或試圖插入它們,但由於約束,觸發器或其他回滾而失敗) – 2014-11-21 16:56:31
'ALTER TABLE table_name AUTO_INCREMENT = 1'試試這個 – 2014-11-21 16:57:51
在phpmyadmin上,繼續表,選項卡操作,並查看AUTO_INCREMENT的值 – 2014-11-21 16:59:53