ВСТАВИТЬ ИЛИ ИГНОРИРОВАТЬ таблицу с ключом АВТОИНКРЕМЕНТ в Android

Я пытаюсь вставить данные в новую пустую таблицу. Но я продолжаю получать ошибку (код ошибки 19: ограничение не выполнено). Я думаю, что проблема может быть вызвана «АВТОИНКРЕМЕНТОМ ПЕРВИЧНОГО КЛЮЧА INTEGER». Вот мой код:

database.execSQL("CREATE TABLE IF NOT EXISTS contacts (cid INTEGER PRIMARY KEY AUTOINCREMENT, name varchar NOT NULL, user varchar NOT NULL, UNIQUE(user) ON CONFLICT REPLACE)");
...
String sql = "INSERT OR IGNORE INTO contacts ( name , user) VALUES (?, ?)";
database.beginTransaction();

SQLiteStatement stmt = database.compileStatement(sql);
stmt.bindString(1, name);
stmt.bindString(2, entry.getUser());
int i = (int)stmt.executeInsert();
stmt.execute();
stmt.clearBindings();
stmt.close();

// error: 06-11 20:50:42.295: E/DB(12978): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed

Кто-нибудь знает, что не так с оператором sql? Как я могу решить эту проблему? Спасибо
Я прочитал несколько статей о stackoverflow. Но не могу найти ни одного поста, связанного с «вставить или заменить» + «АВТОИНКРЕМЕНТ ПЕРВИЧНОГО КЛЮЧА INTEGER».

5
задан mobile app Beginner 11 June 2012 в 13:23
поделиться