Android SQLite. вставить. android.database.sqlite.SQLiteConstraintException - PullRequest
0 голосов
/ 25 июля 2011

создать код базы данных

    StringBuilder my_db = new StringBuilder();
    my_db.append("create table " + "my_db" + " (");
    my_db.append("id integer unique," +
                                  "tmp_id integer unique," +
                                  "tmp_at datetime ," +
                                  "tmp_count integer," +
                                  "tmp_reason_code integer);");
    db.execSQL(unlocked_achievements.toString());

код вставки

final String sql = "insert into my_db (id, tmp_reason_code, tmp_count, tmp_id) values (?, ?, ?, ?)";
SQLiteDatabase db = LocalDB.getInstance().getWritableDatabase();
db.beginTransaction();
try {
    SQLiteStatement stmt = db.compileStatement(sql);
    stmt.bindLong(1, id);
    stmt.bindLong(2, 0);
    stmt.bindLong(3, 0);
    stmt.bindLong(4, tmp_id);
    stmt.execute();
    db.setTransactionSuccessful();
} catch (SQLException e) {
    e.printStackTrace();
}
db.endTransaction();
db.close();

Если код вставки начинается, создается android.database.sqlite.SQLiteConstraintException

1 Ответ

0 голосов
/ 25 июля 2011

Они есть в определении таблицы:

id     integer unique
tmp_id integer unique

Итак, у вас уже есть id или tmp_id в вашей таблице, и попытка вставить их снова нарушает уникальные ограничения для этих столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...