2016-04-04 38 views
4

進入我創建了兩個表:防止複製在sqllite數據庫的Android

  1. Item.db
  2. TempItem.db

兩個表有兩個條目,當我加入項目第三項。數據庫表並將此條目複製到TempItem.db這次重複條目添加在我的TempItem表中。

如何預防?

我的源代碼

// Item.db table array 
for(int ip=0; ip<results.size(); ip++) 
{ 
// TempItem.db table array 
    for(int ig=0; ig<resultmain.size(); ig++) 
    { 
     // Check Both database item 
     if((results.get(ip).item).equals(resultmain.get(ig).item)) 
     { 
      Toast.makeText(getApplicationContext(), "no", 100).show(); 
     } 
     else 
     { 
      mb.insertEntry(1, 1, 1, 1, "Baby", "1", "100", "100"); 
     }       
    } 
} 

不過是獲取添加每次重複的值。

+0

請訪問https://www.buzzingandroid.com/2013/01/sqlite-insert-or-replace-through-contentprovider/ – Bharatesh

回答

1

可以使用insertWithOnConflict

db.insertWithOnConflict(tableName, null, contentValues,SQLiteDatabase.CONFLICT_REPLACE); 
+1

謝謝您的寶貴建議。 –

1

一種方式通過聲明表的主鍵的ID這樣做是或具有獨特屬性的約束它。現在,當您嘗試輸入重複記錄時,sqlite會引發異常唯一約束。

+0

謝謝你的建議。 –

+0

如果您認爲它是正確的,請接受它作爲答案。 – crashOveride