2014-01-15 106 views
0

我在應用商店中發佈了一個應用程序。在Android應用程序的數據庫中更改列類型

該應用程序使用一個數據庫,其中包含一個表類型爲int的列。

我正在做一個新的更改,我需要將列類型更改爲long。

我該如何去處理它在我創建的DatabaseHandler中的處理。

我想保存存儲在舊應用程序數據庫中的數據,那麼最好是onUpgrade()函數中的代碼是什麼?

+0

LONG不是SQLite數據類型,所以如果你使用它,那麼親和性實際上就是NUMERIC,我認爲這不是你的意圖。堅持INT。 – NigelK

+0

表中有多少行? – Tugrul

回答

3

你不需要改變數據庫的列類型。 INTEGER列將愉快地包含表示Java long所需的所有位。其實there's no long column type in sqlite

+0

很酷!那很棒!! –

+0

我也有同樣的問題,但我需要將列類型從VARCHAR更改爲BOOL。如何將存儲爲VARCHAR的現有數據轉換爲BOOL。 – Madhan

+0

@Iaalto:我在資產文件夾中有數據庫。在數據庫中,我有一個名爲「type」的列,其數據類型爲「Varchar」。我需要爲我的應用發佈更新。在新版本中,我需要將「類型」列的數據類型從「Varchar」更改爲「Integer」。 如果將其更改爲「整數」,「類型」列中已存儲爲「Varchar」的現有數據會發生什麼變化。 我需要編寫任何遷移代碼嗎?如果是的話,該怎麼做。 – Madhan

1

我認爲使用SQLite,最好的方法是創建一個臨時表,複製所有表內容,刪除舊錶並在列上重新創建正確類型的表,然後您可以將臨時表並放下它...

我知道這不會像最好的辦法,但我不認爲SQLite有一些改變表功能。

相關問題