我正在尝试向一个新的空表插入数据。但是我一直收到错误提示(错误代码19:约束失败)。我认为问题可能是由于“INTEGER PRIMARY KEY AUTOINCREMENT”引起的。这是我的代码:
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上阅读了几篇文章,但没有找到任何与“insert or replace”和“INTEGER PRIMARY KEY AUTOINCREMENT”相关的帖子。