SQLite: zapobiegaj duplikatom

Chciałbym utworzyć tabelę do przechowywania ustawień urządzenia. Tabela ma trzy wiersze: id, nazwa_parametru i wartość_parametru.

Tabela została utworzona przez wykonanie następującej instrukcji zapytania:

DATABASE_CREATE = "create table DATABASE_TABLE (KEY_ID INTEGER PRIMARY KEY AUTOINCREMENT, KEY_NAME INTEGER not null, VALUE TEXT not null);

a następnie wiersze są zapisywane przez wykonanie następującej metody:

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;
}

Po utworzeniu bazy danych przechowywane są wartości domyślne:

@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);
    }

Problem z metodą insertRow () polega jednak na tym, że nie może zapobiec duplikowaniu wpisów.

Czy ktoś wie, jak zapobiec duplikowaniu wpisów w tym przypadku?

questionAnswers(4)

yourAnswerToTheQuestion