Mam taki stół
db.execSQL("CREATE TABLE " + TABLE_NAME + " ("
+ _ID + " INTEGER PRIMARY KEY,"
+ URL + " TEXT UNIQUE,"
+ SomeInfo + " TEXT,"
+ OtherInfo + " INTEGER"
+ ");");
Tak więc istnieje tylko jeden rekord dla każdej wartości adresu URL. Gdy użytkownik odwiedza adres URL, nie muszę wstawiać nowego wiersza ani aktualizować istniejącego wiersza, jeśli jest on wyświetlany Mógłbym wymyślić 2 sposoby:
SQLiteDatabase.query
najpierw i zastosuj aktualizację, jeśli taka istniejeZawsze używaj
SQLiteDatabase.replace
, w przypadku niepowodzenia wiązania UNIQUE, sqlite zastąpi rekord.Które podejście jest lepsze? Czy są inne sugestie? Dzięki
Odpowiedzi:
1 dla odpowiedzi № 1Ponieważ wydaje mi się, że jest to kwestia sporadyczna (z którą też ostatnio miałem do czynienia) ten post które mogą być pomocne.