SQLite: Duplikate vermeiden
Ich möchte eine Tabelle zum Speichern von Geräteeinstellungen erstellen. Die Tabelle enthält drei Zeilen: id, parameter_name und parameter_value.
Die Tabelle wurde durch Ausführen der folgenden Abfrageanweisung erstellt:
DATABASE_CREATE = "create table DATABASE_TABLE (KEY_ID INTEGER PRIMARY KEY AUTOINCREMENT, KEY_NAME INTEGER not null, VALUE TEXT not null);
Anschließend werden die Zeilen mit der folgenden Methode gespeichert:
private long insertRow(int rowParameter, String rowValue, SQLiteDatabase db){
long res = -1;
ContentValues settingsParameterValues = new ContentValues();
settingsParameterValues.put(KEY_NAME, rowParameter);
settingsParameterValues.put(VALUE, rowValue);
if(db != null){
res = db.insert(DATABASE_TABLE, null, settingsParameterValues);
}
return res;
}
Beim Erstellen der Datenbank werden die Standardwerte gespeichert:
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
insertRow(PRIVACY_LEVEL_ROW_INDEX, "0", db);
insertRow(STREAM_TITLE_ROW_INDEX, "untitled", db);
insertRow(STREAM_TAGS_ROW_INDEX, "", db);
}
Das Problem mit der Methode insertRow () ist jedoch, dass das Duplizieren der Einträge nicht verhindert werden kann.
Weiß jemand, wie man doppelte Einträge in diesem Fall verhindert?