簡體   English   中英

在Android中處理SqLite的多個升級(ALTER與CREATE)

[英]Handling multiple upgrades of SqLite in Android (ALTER vs. CREATE)

在增加版本號時,onUpgrade()被SQLite調用,因此通常您會有一個create-table SQL語句和一個alter-table SQL語句。

如果有多個版本,是否需要聲明多個alter-table語句?

onUpgrade為您提供舊版本和新版本,您可以執行所需的任何操作。 這是一種方法: http : //blog.adamsbros.org/2012/02/28/upgrade-android-sqlite-database/

    public void onUpgrade(
    final SQLiteDatabase db, final int oldVersion,
    final int newVersion)
{
    int upgradeTo = oldVersion + 1;
    while (upgradeTo <= newVersion)
    {
        switch (upgradeTo)
        {
            case 5:
                db.execSQL(SQLiteSet.V5_ADD_LAST_CARD);
                db.execSQL(SQLiteCard.V5_ADD_FAILED);
                break;
            case 6:
                db.execSQL(SQLiteSet.V6_ADD_IMPORT_TYPE);
                break;
            case 7:
                db.execSQL(SQLiteSet.V7_ADD_SHORT_FNAME);
                break;
        }
        upgradeTo++;
    }
}

是的,您可能需要從任何給定版本號到當前版本的升級路徑。 onUpgrade()為您提供了一種執行此操作的方法,因為它為您提供了舊版本號,您可以使用它來確定要執行哪些遷移以獲取最新版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM