我正在寻找一种方法来填充/更新我的SQLiteDatabase
表。
在某些情况下,我需要得到通知(通过某些返回值)。每行包含一个需要稍后下载的文件的URL。
我一直在寻找答案,但似乎找不到好的东西。我应该使用insertWithOnConflict()
,replace()
,replaceOrThrow()
,......
谢谢!
答案 0 :(得分:2)
在一个sqlite事务中包含两个步骤:
通过rowid查询。如果没有找到rowid或没有结果,请插入新内容并下载。
比较步骤1中检索到的新行和新行的网址。仅当网址不同时,请更新行并下载,否则无操作。
答案 1 :(得分:0)
首先,查询数据库中是否存在值与光标&如果它为null,则进行插入,否则如果所需字段与您已有的字段不同,则进行更新。 在任何其他情况下什么也不做 //一些伪代码
Cursor cursor=_db.query("TABLE", null, TABLEID + "=?", new String[]{id}, null, null, null);
if(cursor.getCount()<1) // row Not Exist
{
cursor.close();
....assign values
SQLiteDatabase _db.insert("TABLE_Name", null, Table_object);
download ...ok
}
cursor.moveToFirst();
if( cursor[field] != "same_value" ) {
SQLiteDatabase _db.update("TABLE_Name", null, Table_object);
download ...ok
}