在我的Android应用程序中,我正在使用带有SQLiteOpenHelper
我有几个数据库版本,我一直在通过打开旧的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
现在,我想删除新的数据库版本中的用户表。我该怎么办?
答案 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();
}