Android Sqlite - 使用CONFLICT_REPLACE更新/插入或插入?

时间:2015-07-19 19:05:09

标签: android database sqlite

我在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,我也没有使用它......

1 个答案:

答案 0 :(得分:2)

如果您在替换发生时更改了rowid,那么我认为insertWithOnConflict()将使您的代码更具可读性并且可能更高效(因为它只需要准备一个语句)。