安装了一个表的Android SQLite新数据库版本

时间:2015-07-25 13:04:09

标签: android android-sqlite

在我的Android应用程序中,我正在使用带有SQLiteOpenHelper

的SQLite DB

我有几个数据库版本,我一直在通过打开旧的db版本进行onUpgrade()操作,但现在我必须删除其中一个表因为我不再使用它,所以应该我做了不同的事情?

public void onCreate(SQLiteDatabase database) {
        database.execSQL(tableUserCreate);
        database.execSQL(tableProductsCreate);
        database.execSQL(tablePicturesCreate);
    }


public void onUpgrade(SQLiteDatabase database, int version_old, int current_version) {
    switch (version_old) {
    case 1:
        database.execSQL(addPostcodeFieldToUserTable);
        database.execSQL(tablePlacesCreate);
        // Intentional fallthrough, no break;
    case 2:
        database.execSQL(tableProductVideosCreate);
        break;
    }
} // End of onUpgrade

现在,我想删除新的数据库版本中的用户表。我该怎么办?

2 个答案:

答案 0 :(得分:3)

用于删除表的SQL:

DROP TABLE table_name

或使用:

DROP TABLE IF EXISTS table_name

答案 1 :(得分:2)

当您更改Database_Version时,它会调用

  

onUpdate(SQLiteDatabase db,int oldVersion,int newVersion)

方法首先,所以你必须在该方法中做所有的drop或创建一些东西。在你的情况下你使用Switch case我使用if else做同样的事情。 但在这种情况下两者都可以正常工作。

  

if(newVersion == yourNewVersion){

     

尝试{

     

//删除旧表(如果存在)

     

db.execSQL(“DROP TABLE IF EXISTS”+ YOUR_TABLE_NAME);

     

//如果您想在此创建

,请再次创建表格      

} catch(例外e){            e.printStackTrace();

     

}