如何在安卓系统中重置SqLite数据库?

25

我希望我的用户能够重置应用程序,那么我需要重置我创建的SQLite数据库。我该怎么做?我想重置数据库或删除并重新创建数据库。


请清空数据库中所有表的数据,而不是删除整个表。 - Vijju
6个回答

17

只需通过删除数据库来实现

context.deleteDatabase(DATABASE_NAME);

在删除之前,请确保关闭您的数据库。


我尝试删除数据库。问题是,当我这样做时,我无法再次插入任何内容。 - Roland
删除后,在打开的活动的onCreate中调用创建数据库脚本。 - Linga
6
在删除之前,请确保关闭您的数据库。 - Zohra Khan

9

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


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

这应该会删除表中的所有行,有关SQLite数据库的文档,请参见此处


你是冠军!伙计。 - 4xMafole

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方法。

调用onCreate对我有用。顺便说一下,我将getWritableDatabase()从我的SqlLiteOpenHelper子类中传递为onCreate参数。 - Shane Sepac

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

希望这可以帮到你


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接