繁体   English   中英

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

[英]How to delete thousands of records from sqlite android

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

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

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

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

然后重新创建一个空表:

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

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

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

    从用户输入的tUser中删除(选择前200个UserId来自tUser,其中LastLoggin <GetDate() - 120)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM