我试图将我的表放在onUpgrade上,并且确实删除了空表,但是如果表中有行-它不会被删除。
我尝试过以下代码首先清理表:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.delete(EventsTable.TABLE_NAME,null,null);
db.delete(UsersTable.TABLE_NAME,null,null);
//Create the drop query
String dropQuery = "Drop Table " + EventsTable.TABLE_NAME + ";";
dropQuery += " Drop Table " + UsersTable.TABLE_NAME + ";";
// Drop older tables if existed
db.execSQL(dropQuery);
// Create tables again
onCreate(db);
}
但是,该表仍未删除-由于数据库已更改,因此这将导致我发布应用程序的新版本时遇到问题
最佳答案
String dropQuery = "Drop Table " + EventsTable.TABLE_NAME + ";";
dropQuery += " Drop Table " + UsersTable.TABLE_NAME + ";";
您正在尝试执行SQL不允许的多个SQL语句。我建议您分别执行两个drop table sql语句。
String dropQuery = "Drop Table " + EventsTable.TABLE_NAME + ";";
db.execSQL(dropQuery);
dropQuery = " Drop Table " + UsersTable.TABLE_NAME + ";";
db.execSQL(dropQuery);