Sto chiamando insertWithOnConflict, utilizzando SQLiteDatabase.CONFLICT_IGNORE. Tuttavia, quando si verifica un conflitto, viene restituito "-1" anziché l'ID della riga esistente. Come posso correggere questo?Android: SQLite - insertWithOnConflict
creazione Tabella:
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);
Inserire dichiarazione:
ContentValues values = new ContentValues();
values.put(KEY_CATEGORY_NAME, name);
int catID = (int) db.insertWithOnConflict(TABLE_CATEGORY, null, values, SQLiteDatabase.CONFLICT_IGNORE);
Un valore di ritorno di -1 indica che si è verificato un errore. Restituisce anche -1 se si inserisce una riga univoca (non in conflitto)? –
@Graham Borland: No. Un inserto non in conflitto restituirà l'id corretto della riga. – meeeee