2011-06-26 91 views
2

我有一個SQLite數據庫是通過使用Java讀取PDF文件中的一些數據創建的。每天(或幾乎)我有新的PDF文件要讀取,在我的SQLite數據庫的某些表中創建新行。SQLite數據庫到MySQL數據庫日常遷移/更新新字段

最後,我想要做的是使用我的網站訪問的MySQL數據庫在互聯網上提供數據庫中的數據。問題是,我在Google上搜索過,沒有用,如何將我的數據庫遷移到MySQL。當然,我已經找到了一些可以這樣做的程序,但是他們不允許我每天在午夜以自動的方式進行。另外,如果可能的話,我寧願以另一種方式來做:只更新已添加的新行並僅遷移這些行,而不是每天重新創建整個數據庫。

我不知道做這種事情的最好方法是什麼,所以如果標籤錯了,我對此感到抱歉。

運行java程序來創建/更新SQLite數據庫的計算機正在運行Windows Vista(如果它很重要)。

回答

1

你可以在你的SQLite表中包含一個時間戳,並將默認值設置爲插入記錄的時間(default now應該這樣做)。然後,你需要一個包含單個時間戳的MySQL數據庫(或SQLite數據庫,哪個更適合你),這將是你的「上次導入時間」。

當它的時間做你的數據傳輸:

  • 抓住最後的導入時間。
  • 將當前時間戳存儲在t中。
  • 從您的SQLite數據庫中獲取比t更新的所有內容,並將其複製到您的MySQL數據庫中。
  • 將數據庫中最後導入的時間從上面更新爲t

存儲您在t中使用的時間戳有助於避免丟失任何東西。

如果你還更新SQLite數據庫中的東西而不是隻是插入東西,那麼你可以爲「最後修改時間」添加另一個時間戳。然後應用與「複製」替換爲「更新」或「刪除並重新插入」相同的邏輯。

+0

這是一個好主意。這就是我要做的,謝謝!但唯一的事情是,我實際上並不知道如何以自動方式將數據從我的SQLite數據庫複製到我的MySQL數據庫。我可以使用一些轉換器來完成,但它需要我手動完成,這不是我想要做的事情...你對我應該如何處理這個問題有任何想法嗎? –

+0

@Adam:如果你只處理少量數據(比如幾千條記錄),那麼你可以通過打開一個連接到SQLite數據庫和另一個連接到MySQL的連接來完成,然後從SQLite讀取並寫入到MySQL。低級的JDBC可能就足夠了。我不知道有哪些工具可以爲你做到這一點,所以你可能需要自己構建一個。或者給它一些時間,看看有沒有人配備完全自動化的解決方案。我是一名程序員,我建立了我自己的工具:) –

+0

好吧,我要試着去做那件事。我的一張桌子上有大約145,000條記錄(還有我的另外5張桌子在500到8000之間),但這只是一次性交易。對於每日新紀錄,它只有大約300條記錄。我會嘗試自己構建工具,但我只是一個初學者,所以我們會看看它是如何發展的。非常感謝,如果非常感謝您的幫助! –