SQLiteDatabase: Wstaw tylko wtedy, gdy wartość nie istnieje (nie za pomocą surowego polecenia SQL)
Wiem, że istnieje polecenie SQL, które wygląda tak:IF NOT EXISTS
, ale od AndroidaSQLiteDatabase
klasa ma kilka świetnych metod, zastanawiałem się, czy możliwe jest wstawienie wartości, jeśli nie istnieje za pomocą metody.
Obecnie używam tego do wstawieniaString
:
public long insertString(String key, String value) {
ContentValues initialValues = new ContentValues();
initialValues.put(key, value);
return db.insert(DATABASE_TABLE, null, initialValues);
}
(db
jest przykłademSQLiteDatabase
.)
Próbowałem metodyinsertOrThrow()
zamiastinsert()
, ale wygląda na to, że działa tak samoinsert()
. Oznacza to, że jeśli wartość jest już w wierszu, jest wstawiana ponownie, więc wiersz ma teraz dwie wartości o tej samej wartości.