2012-01-05 266 views
0

我在我的應用程序中有一個預先建立的SQLite數據庫。它有一排有大約20行文本的行。我希望能夠在不刪除所有以前的信息的情況下將其他行添加到表中。我已經看到了允許我這樣做的唯一方法是刪除所有以前的數據庫,然後用新行重新創建它。一定會有更好的辦法。謝謝你的幫助!Android SQLite數據庫更新

+3

你的問題似乎缺少一些東西。爲什麼不能將新行插入現有數據庫? – antlersoft 2012-01-05 19:12:30

+0

我想如果你不在SQLLiteOpenHelper onCreate(..)中執行任何腳本,它應該保留你的預先建立的DB。 – kosa 2012-01-05 19:22:14

+0

@ user.you可以直接使用INSERT INTO輸入新行,或者您可以使用ContentProviders插入表中......完全取決於您的選擇 – Maverick 2012-01-05 19:55:31

回答

0

您是否將列與行混淆?

如果您的確確實意味着行,那麼作爲antlersoft指出,使用SQL INSERT INTO語句將簡單地向表中添加新行,而不會影響任何現有表數據。這是最基本和最常用的SQL語句之一。

如果您確實需要添加列,請使用SQL ALTER TABLE語句。

參見..

SQL INSERT INTO statement

SQL ALTER TABLE statement

+0

感謝您的反饋。你說得對,我想插入一個我相信的列。 – user1132897 2012-01-05 21:11:47

+0

我想的很多。試想一下,柱子可以撐起建築物的屋頂,你會記得哪個是哪個。您幾乎可以對數據庫做任何事情,而無需破壞現有數據。作爲快速參考,保留該網站的書籤很不錯。 – Squonk 2012-01-05 21:18:24

0

Android框架,因爲它涉及到的SQLite(使用SQLiteOpenHelper)提供了用於處理數據庫的生命週期的兩個不同的方法 - onCreate(),當使用時該數據庫需要從頭開始創建,並且需要onUpgrade(<database>, int oldVersion, int newVersion)來處理更新。您可以在SQLiteOpenHelper的超類的構造函數中指定「新」版本號,並且框架知道根據此參數和實際sqlite數據庫中的內部版本#調用onUpgrade()

因此,在版本更改期間修改數據庫只需重寫onUpgrade()並運行您需要的任何SQLite東西。