Android: SQLite - insertWithOnConflict

Rufe ich insertWithOnConflict, mit SQLiteDatabase.CONFLICT_IGNORE. Jedoch, wenn ein Konflikt Auftritt, "-1" zurückgegeben, anstatt die id der vorhandenen Zeile. Wie kann ich das korrigieren?

Erstellung der Tabelle:

EDIT :

String CREATE_CATEGORY_TABLE = "CREATE TABLE "+TABLE_CATEGORY+"(" +
    BaseColumns._ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
    KEY_CATEGORY_NAME+" TEXT UNIQUE" +
    ")";
db.execSQL(CREATE_CATEGORY_TABLE);

Insert-Anweisung:

ContentValues values = new ContentValues();
values.put(KEY_CATEGORY_NAME, name);
int catID = (int) db.insertWithOnConflict(TABLE_CATEGORY, null, values, SQLiteDatabase.CONFLICT_IGNORE);
  • Ein Rückgabewert von -1 bedeutet, dass ein Fehler aufgetreten ist. Tut es auch -1 zurückgeben, wenn Sie legen Sie eine eindeutige (nicht-widersprüchlichen) Zeile?
  • Borland : Nein. Ein nicht kollidierende insert wird wieder die richtige Zeile id.
InformationsquelleAutor meeeee | 2012-09-11
Schreibe einen Kommentar