我現在有一個表,它是與我的應用程序運行,Android和SQLite的更新
,但我想添加一些更多的列工作SQLite數據庫,我看這件事,它看起來像它需要一個ALTER - 表,執行onUpgrade,
這是否意味着我必須在 以剛纔添加的兩列,我需要完全升級SQLite數據庫?
這是調整表格的唯一方法嗎?
- 如果我有拼寫錯誤或任何錯誤,我必須升級?
我是相當新的SQLite和一般的數據庫管理系統,所以原諒我的無知
我現在有一個表,它是與我的應用程序運行,Android和SQLite的更新
,但我想添加一些更多的列工作SQLite數據庫,我看這件事,它看起來像它需要一個ALTER - 表,執行onUpgrade,
這是否意味着我必須在 以剛纔添加的兩列,我需要完全升級SQLite數據庫?
這是調整表格的唯一方法嗎?
我是相當新的SQLite和一般的數據庫管理系統,所以原諒我的無知
如果您的應用已經發布和客戶都在使用它,那麼你將要使用的方法onUpgrade
,以保持他們的數據並通過運行ALTER TABLE
命令等將其本地數據庫升級到新的模式。
如果客戶還沒有您的應用程序,那麼您可以從模擬器或測試設備中刪除它。然後,只需修改onCreate
方法即可從頭開始創建正確的列。當你啓動你的應用程序時,它應該創建你想要的模式的數據庫。
我不認爲有人已經安裝了它>> 我會檢查,謝謝。 – Spider
您的SQLiteOpenHelper類具有用參數DBname和DBversion創建應用程序數據庫的公共過程。
如果DBUpdate調用了onUpgrade調用的方法(不是當前設備上的數據庫版本)方法。在onUpgrade方法中,您必須調用用於更改表結構的命令。
public class dbSQLadapter extends SQLiteOpenHelper {
private static final String DB_NAME = "peredovik";
private static final int DB_VERSION = 23;
public dbSQLadapter(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
在這裏的一些terminology:「升級」你的數據庫通常意味着安裝SQLite的新版本,這不是你想要或在這種情況下需要做的。只要硬着頭皮來做'ALTER TABLE',它並不是那麼糟糕。 –