Android SQLiteOpenHelper onUpdate不会删除包含行的表

时间:2014-05-07 08:05:39

标签: android sqliteopenhelper

我试图将我的表放在升级上,它会删除空表,但如果表中有行 - 它就不会被删除。

我已尝试使用以下代码首先清理表格:

@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);       
}   

但是,表格仍然不会丢失 - 因为我的数据库发生了变化,因此发布我的应用程序的新版本会导致我的问题

1 个答案:

答案 0 :(得分:2)

String dropQuery = "Drop Table " + EventsTable.TABLE_NAME + ";";
dropQuery += " Drop Table " + UsersTable.TABLE_NAME + ";";  

您正在尝试执行sqlite中不允许的多个SQL语句。我建议你分别执行drop table sql语句。

String dropQuery = "Drop Table " + EventsTable.TABLE_NAME + ";";
db.execSQL(dropQuery);
dropQuery = " Drop Table " + UsersTable.TABLE_NAME + ";";
db.execSQL(dropQuery);