我希望我的用户能够重置应用程序,然后我需要重置我创建的 SQLite 数据库。 我怎样才能做到这一点?我想重置数据库或删除并重新创建数据库。
只需删除您的数据库
context.deleteDatabase(DATABASE_NAME);
删除前请确保关闭数据库。
有点晚了,但这可以帮助其他人
public void clearDatabase(String TABLE_NAME) {
String clearDBQuery = "DELETE FROM "+TABLE_NAME;
db.execSQL(clearDBQuery);
}
这应该从表中删除所有行,请参阅 SQLite 数据库的文档这里!
为我工作。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS TABLE_NAME");
onCreate(db);
}
只需从数据库中删除表
db.execSQL("DROP TABLE "+TABLENAME);
并再次在同一数据库中创建表。
您可以使用
delete from table where 1=1
删除所有表的内容,或者您可以再次调用数据库 onCreate
方法
有两个选项可以从数据库中清除表
首先
如果你想删除特定行上的数据,你需要在数据库类中添加此代码
public Boolean specification(int id, String table_name)
{
return db.delete(table_name, KEY_ID + "=" + id, null) > 0;
}
当你想执行此操作时添加以下代码
db.deleteSpecificOrder(id, "table_orders");
其次
如果您想删除表中的所有数据,那么您只需将以下代码添加到数据库中
public void clearDatabase(String TABLE_NAME) {
db = this.getReadableDatabase();
String clearDBQuery = "DELETE FROM " + TABLE_NAME;
db.execSQL(clearDBQuery);
}
然后在您要执行该操作的位置添加以下行
db.clearDatabase("table_food_items");
希望对你有帮助
我的解决方案
try {
presenter = new NonioApplicationPresenterImpl(this);
masterHelper = presenter.getDevOpenHelper();
sqLiteDatabase = presenter.getWritableDatabase();
daoMaster = presenter.getDaoMaster();
daoSession = presenter.getNewSession();
} catch (SQLiteException sqLiteException) {
deleteDatabase(NonioApplicationPresenter.DATABASE_NAME);
}