2015-07-19 154 views
0

我對Android的使用SqliteDatabase和我總是用Android Sqlite - 使用CONFLICT_REPLACE更新/插入或插入?

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的,這我沒有使用任何...

回答

2

如果你是好與rowid被改變時,替換髮生,那麼我認爲insertWithOnConflict()將使您的代碼更具可讀性,並且可能更具性能(因爲它只需準備一條語句)。