Llamo a insertWithOnConflict, usando SQLiteDatabase.CONFLICT_IGNORE. Sin embargo, cuando ocurre un conflicto, se devuelve "-1" en lugar de la identificación de la fila existente. ¿Cómo puedo corregir esto?Android: SQLite - insertWithOnConflict
creación de la tabla:
EDIT: declaración
String CREATE_CATEGORY_TABLE = "CREATE TABLE "+TABLE_CATEGORY+"(" +
BaseColumns._ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
KEY_CATEGORY_NAME+" TEXT UNIQUE" +
")";
db.execSQL(CREATE_CATEGORY_TABLE);
Insertar:
ContentValues values = new ContentValues();
values.put(KEY_CATEGORY_NAME, name);
int catID = (int) db.insertWithOnConflict(TABLE_CATEGORY, null, values, SQLiteDatabase.CONFLICT_IGNORE);
Un valor de retorno de -1 significa que se ha producido un error. ¿También devuelve -1 si inserta una fila única (no conflictiva)? –
@Graham Borland: No. Una inserción no conflictiva devolverá la identificación de fila correcta. – meeeee