2016-04-04 13 views
4

アンドロイドsqlliteデータベース内のエントリを複製するために防ぎます。 dbテーブルを作成し、このエントリをTempItem.dbにコピーします。今回は、TempItemテーブルに重複エントリが追加されました。は、私は2つのテーブルを作成

これを防止するにはどうすればよいですか?

私のソースコード

// 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

あなたはそれを行うための1つの方法は、主キーまたはユニーク制約とそれを属性として、テーブルのIDを宣言することであるinsertWithOnConflict

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

あなたの素晴らしい提案をありがとう。 –

1

を使用することができます。現在、sqliteは重複したレコードを入力しようとすると例外一意制約をスローします。

+0

あなたの素晴らしい提案をありがとう。 –

+0

正しいと思われる場合、plsは答えとしてそれを受け入れます。 – crashOveride

関連する問題