Tôi đang gọi insertWithOnConflict, sử dụng SQLiteDatabase.CONFLICT_IGNORE. Tuy nhiên, khi xung đột xảy ra "-1" được trả về thay cho id của hàng hiện tại. Làm cách nào để sửa lỗi này?Android: SQLite - insertWithOnConflict
Bảng tạo:
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);
Chèn tuyên bố:
ContentValues values = new ContentValues();
values.put(KEY_CATEGORY_NAME, name);
int catID = (int) db.insertWithOnConflict(TABLE_CATEGORY, null, values, SQLiteDatabase.CONFLICT_IGNORE);
Giá trị trả về -1 có nghĩa là đã xảy ra lỗi. Liệu nó cũng trả về -1 nếu bạn chèn một hàng duy nhất (không xung đột)? –
@Graham Borland: Không. Chèn không xung đột sẽ trả lại id hàng chính xác. – meeeee