Ozz*_*zzy 2 sqlite android duplicates
我的应用程序在Internet上读取XML文件,记录时间并创建/写入SQLite数据库.下次需要数据时,如果时间> 24小时,则更新数据库(再次下载xml).
问题是每当我在AVD中重新启动应用程序时,它都必须重新下载,因此我注意到数据库中的所有数据都被重新写入(重复).所以我有20个(10 + 10个重复),而不是10个项目.如果我再次重新启动,我会再复制10件物品.
我想过如何防止数据库重复(或删除旧条目),所以我决定每次下载内容时都增加数据库版本.我认为这将触发onUpgrade()方法,因此数据将被清除,但没有任何变化.
现在我一无所知.我该怎么办呢?
小智 5
在您的数据库上创建您将要使用UNIQUE约束.您可能不想要我使用的ON CONFLICT REPLACE,但您应该明白这一点.
对于Ex:
private static final String DATABASE_CREATE_NEWS= "create table news (_id integer primary key autoincrement, "title text not null, description text not null, date text not null, LastModified text not null, UNIQUE(title, date) ON CONFLICT REPLACE);";
Run Code Online (Sandbox Code Playgroud)
这是另一个可以讨论它的坚实主题. SQLite表约束 - 在多列上唯一
这里有一些关于android sqlite的更多信息:http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
| 归档时间: |
|
| 查看次数: |
5205 次 |
| 最近记录: |