2016-04-04 32 views
4

android SQLLite veritabanında girişini çoğaltmak için engellemektedir. db tablosu ve bu girişi TempItem.db'ye kopyala, bu kez TempItem tablomda yinelenen giriş eklendi.İki tablo oluşturdu

Bu nasıl önlenir?

Benim kaynak kodu

// 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"); 
     }       
    } 
} 

Ama her seferinde yinelenen katma değer oluyor.

+0

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

cevap

1

birincil anahtar olarak tablonun id bildirerek bunu yapmanın insertWithOnConflict

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

adresini ziyaret edin Büyük önerileriniz için teşekkür ederiz. –

1

Tek yön kullanabilir veya benzersiz kısıtlama ile bağlayabiliriz. Şimdi, yinelenen kayıt girmeye çalıştığınızda, sqlite bir istisna özel bir kısıtlama atar.

+0

Harika önerileriniz için teşekkür ederiz. –

+0

Doğru olduğunu düşünüyorsanız, lütfen cevap olarak kabul edin. – crashOveride