我试图将我的表放在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);

07-27 17:09