如何从sqlite android中删除数千条记录

时间:2012-12-14 09:49:58

标签: android sqlite

我在SQLite表中有超过5000-6000条记录。当我删除所有记录时,它需要很长时间并导致屏幕暂停并开始释放资源。

我尝试使用AsyncTask但仍然是同样的问题。所以任何人都可以告诉我如何在不阻止app的情况下删除这千条记录。

2 个答案:

答案 0 :(得分:0)

如果要删除表中的所有记录,可以尝试删除表:

http://www.sqlite.org/lang_droptable.html

后来重新创建一个空表:

http://www.sqlite.org/lang_createtable.html

答案 1 :(得分:0)

我不是Sqlite的专家,但总的来说有3种方法可以做到。

  1. 如果您要删除所有记录,每个人都会评论Truncate。
  2. 如果要访问大部分记录,可以将非删除文件存储在tempTable中,然后截断实际表,最后将所有记录从临时表插入到实际表中
  3. 这是我大部分时间都在使用的。在您的情况下使用Top XXX删除语句,您可以每2分钟删除200条记录。 (我假设你不会在2分钟内插入超过200条记录)。 AsyncTask是这种方法的方式。 在T-SQL中,我使用以下sql由你决定

    从tUser删除 UserId在哪里(                  选择前200个UserId                  来自tUser                  其中LastLoggin< GETDATE() - 120 )