2012-01-21 140 views
1

我知道這類問題有很多問題,我知道我不是第一個,也不是最後一個,但是我需要一些幫助解決這個問題。我試圖將我的數據庫從舊版升級到更新的版本,並試圖找出如何做到這一點。我使用我自己的SQLiteDatabaseHelper類,它從資產文件夾複製數據庫文件並將其保存到系統數據庫文件夾。所以我想知道哪個是實現我的onUpgrade()函數的最好方法,所以我可以解決這個問題。Android升級數據庫

我想找到一種方法將舊錶格中的所有數據複製到新表格中,之後刪除舊錶格,但我不確定如何實現此功能。歡迎任何想法或任何形式的幫助!

謝謝!

回答

1

在你onUpgrade()方法,編寫一個查詢來

1) create backup_table, (make sure backup_table is not already there using IF EXISTS) 
2) Select data from original table and insert into backup 
insert into table2 (name, address) select name, address from table1 
3) remove original table 
+0

另一個問題,我有。如果我每次都使用版本1初始化數據庫幫助器,並且在我的課程中,我將db_version設置爲3,那麼我應該如何從現在開始。我的助手類怎麼能在下一次啓動時檢測到我已經升級了數據庫而不是再次執行它。 –

0

複製就像查詢舊錶一樣簡單,插入到新表中。

然後,您可以刪除舊錶。