如何在Android中重置SqLite数据库?

问题描述 投票:0回答:7

我希望我的用户能够重置应用程序,然后我需要重置我创建的 SQLite 数据库。 我怎样才能做到这一点?我想重置数据库或删除并重新创建数据库。

android sqlite android-sqlite
7个回答
18
投票

只需删除您的数据库

context.deleteDatabase(DATABASE_NAME);

删除前请确保关闭数据库。


9
投票

有点晚了,但这可以帮助其他人

public void clearDatabase(String TABLE_NAME) {  
   String clearDBQuery = "DELETE FROM "+TABLE_NAME;  
   db.execSQL(clearDBQuery);  
   }  

这应该从表中删除所有行,请参阅 SQLite 数据库的文档这里


3
投票

为我工作。

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS TABLE_NAME");
    onCreate(db);
}

2
投票

只需从数据库中删除表

db.execSQL("DROP TABLE "+TABLENAME);

并再次在同一数据库中创建表。


1
投票

您可以使用

delete from table where 1=1
删除所有表的内容,或者您可以再次调用数据库
onCreate
方法


0
投票

有两个选项可以从数据库中清除表

首先

如果你想删除特定行上的数据,你需要在数据库类中添加此代码

    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");

希望对你有帮助


0
投票

我的解决方案

 try {

        presenter = new NonioApplicationPresenterImpl(this);

        masterHelper = presenter.getDevOpenHelper();
        sqLiteDatabase = presenter.getWritableDatabase();
        daoMaster = presenter.getDaoMaster();
        daoSession = presenter.getNewSession();

    } catch (SQLiteException sqLiteException) {
        deleteDatabase(NonioApplicationPresenter.DATABASE_NAME);
    }
© www.soinside.com 2019 - 2024. All rights reserved.