我在Android上使用SqliteDatabase而且我一直在使用
if (mDB.update(CITIES_TABLE, values, _ID + " = " + id + " AND " + _KEY + " = '" + key + "'", null) == 0) {
mDB.insert(CITIES_TABLE, null, values);
}
// _ KEY和_ID是复合主键...
但是现在我注意到有一个insertWithOnConflict和CONFLICT_REPLACE作为ConflictAlgorithm,它应该做同样的事情......
但现在的问题是:使用哪一个?哪一个更好? insertWithOnConflict对我来说似乎更清楚(代码中)......
我知道CONFLICT_REPLACE会改变RowId,我也没有使用它......
答案 0 :(得分:2)
如果您在替换发生时更改了rowid
,那么我认为insertWithOnConflict()
将使您的代码更具可读性并且可能更高效(因为它只需要准备一个语句)。