Roland
Roland

Reputation: 876

How to reset SqLite database in Android?

I want my users to be able to reset the application, then I need to reset the SQLite database that I have created. How can I do that? I want to reset the database or delete and recreate the database.

Upvotes: 26

Views: 54819

Answers (7)

George Freire
George Freire

Reputation: 47

My Solution

 try {

        presenter = new NonioApplicationPresenterImpl(this);

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

    } catch (SQLiteException sqLiteException) {
        deleteDatabase(NonioApplicationPresenter.DATABASE_NAME);
    }

Upvotes: 0

Linga
Linga

Reputation: 10563

Just delete your database by

context.deleteDatabase(DATABASE_NAME);

Please make sure to close your database before deleting.

Upvotes: 18

Muhammad Yaseen
Muhammad Yaseen

Reputation: 278

There are two option to clear the table from the database

Firstly

If you wan to delete the data on specific row you need to add this code in the database class

    public Boolean specification(int id, String table_name)
     {
         return db.delete(table_name, KEY_ID + "=" + id, null) > 0;
     }

and add the below code when you want to perform this action

  db.deleteSpecificOrder(id, "table_orders");

Secondly

If you want to delete all the data from th table then you just need to add below code into your database

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

and then add the below line where you want to perform that action

 db.clearDatabase("table_food_items");

I Hope that will help you

Upvotes: 0

RamIndani
RamIndani

Reputation: 698

Bit late but this can help other people

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

This should remove all the rows from the table refer documentation of SQLite database here!

Upvotes: 9

user3307005
user3307005

Reputation: 216

Working for me.

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

Upvotes: 3

Prateek
Prateek

Reputation: 316

Just drop tables from database

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

and again create the table in same database.

Upvotes: 2

Giacomoni
Giacomoni

Reputation: 1468

You can delete the content of all your tables using delete from table where 1=1, or you can call your database onCreate method again

Upvotes: 1

Related Questions