2011-08-12 21 views
0

我的mysql有一個有趣的問題。我有一個表,主鍵是一個自動增量。最近我犯了一個錯誤,不得不使用phpmyadmin手動添加18條記錄,而不是通過網站添加。現在發生的事情是,mysql所說的是表中的記錄數和最後一個id之間存在差異。意思是,mysql表示表中有6935條記錄,但表中的最後一個條目的ID爲6917,那麼mysql計算的多餘18條記錄不存在於任何地方。有誰知道問題是什麼?這是一個MySQL錯誤還是我在某個地方搞砸了?Mysql行數不匹配最後輸入的值

+0

什麼'SELECT COUNT(*)FROM yourTable'返回? – Jacob

+2

你從哪裏得到6935號碼?在MySQL中獲取錶行數有很多方法,但並不都是準確的。 – Mchl

+0

您可能手動添加了auto_increment列的值嗎? auto_increment在列的值未定義時爲0或NULL時完成。 –

回答

0

沒有有在mysql中沒有錯誤..

1)應先檢查數據是否被輸入與否。

2)你需要檢查是否有任何數據從表中刪除或不..你需要檢查所有汽車公司。數據..它是從1開始的,它是按順序嗎?

+9

呃... mysql中有很多bug,但這不應該是其中之一。 –

2

由於id列是auto_increment,所以如果您刪除記錄,將會出現間隙。

+0

當最高auto_increment ID低於報告的行數時,這是如何解釋的?通常情況是相反的。 – Mchl

+1

唯一可能發生的情況是,如果在某個時間插入了記錄並物理設置了id,這可能會影響自動增量。即刪除然後想要重新插入剛刪除的行ID的人。正如我們都知道的是一個禁忌。 – Brian

+0

@Brian ...我沒有刪除任何記錄,我所做的只是使用sql插入一組記錄。現在我有一個情況,其中mysql計數爲我提供了6935條記錄,而最後一條插入的i.d爲6917.我正在使用'select count(*)from table'來獲取記錄數。有趣的是,這種差異等同於我插入的記錄數量! –