2016-03-12 70 views
0

我遇到了一個不尋常的問題,可能會突出我對MySQL的不熟悉。我有超過1000個需要上傳到MySQL服務器的excel文件。我使用mysql.connector和xlrd編寫了一個簡單的python程序(python 2.7僅供參考)。該程序基本收集相關數據,然後添加它使用MySQL,行消失

"INSERT INTO realposts " 
"(PostId, Subreddit, Title, Body, Username, NumberofComments, Upvotes, CreationTime, Link, Gilded, SFW)" 
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" 
"ON DUPLICATE KEY UPDATE NumberofComments = NumberofComments, Upvotes = Upvotes, Gilded = Gilded;" 

到目前爲止,這麼好!我添加了大約400個excel文件,沒有問題。然後我再添加了400個,迄今爲止都非常好。我到了最後200但是,做數據的快速分析時,注意到,當我做了

select subreddit, count(*) from realposts 
group by subreddit; 

是一整類,以假想超過1000項,剛剛消失。

有人能指出我可能造成這種情況的原因,以及如何解決它?我對MySQL非常陌生,但搜索表明這不應該發生。我不知道如何開始調試。

編輯:而且不知何故,第四次運行後,該錯誤已經消失。我會放開這個,但我爲什麼沒有答案。

+0

如果您不熟悉MySQL,那麼如果可能的話,我建議您切換到PostgreSQL ... –

+0

realposts表的定義是什麼?特別是主鍵。 –

+0

主鍵是PostId,其數據類型爲varchar(6)並設置爲NN。 – TheCog

回答

0

所以,這顯然是在mysql工作臺中顯示錶的問題,我已將行的限制設置爲1000,這就是爲什麼它不顯示某些結果,我錯誤地認爲它已被吃掉。

謝謝大家。

1

我做了一些研究,爲您和這些可能性之一可能發生:

1)數據從來沒有擺在首位數據庫。其他地方發生了一些事情,所以數據消失了。也許間歇性的網絡問題,服務器重載,應用程序錯誤。

2)數據庫事務沒有被提交,並被回滾。可能是你的應用程序代碼中的一個錯誤,可能是一些無效的數據搞砸了,可能發生併發異常等。

3)MySQL中的一個錯誤。

+0

是的,當我四處搜尋問題的解決方案時看到了這個。同一個網頁說它不應該是#3。但我100%肯定我正在進行修改(實際上,我可以看到它們!) 如果它是一個應用程序錯誤,我該如何去追蹤它?它是一個本地服務器,所以它不是連接問題。 – TheCog