SQLiteConstraintException: код ошибки 19: ограничение не выполнено - PullRequest
19 голосов
/ 21 декабря 2010

Я получаю это исключение, когда делаю вставку в базу данных SQLite

Следующий код дает мне исключение:

mDbHelper.createUser("pablo","a","a","a","a");

Код от mDbHelper (MyDbAdapter):

private static final String USER_TABLE_CREATE = "CREATE TABLE user ( email varchar, password varchar, fullName varchar, mobilePhone varchar, mobileOperatingSystem varchar, PRIMARY KEY  (email))";

public long createUser(String email, String password, String fullName, String mobilePhone, String mobileOperatingSystem) 
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put("email",email);
        initialValues.put("password",password);
        initialValues.put("fullName",fullName);
        initialValues.put("mobilePhone",mobilePhone);
        initialValues.put("mobileOperatingSystem",mobileOperatingSystem);
        return mDb.insert("user", null, initialValues);
    }

Исключение создается в последней строке: return mDb.insert("user", null, initialValues);

1 Ответ

39 голосов
/ 21 декабря 2010

Вы вставляете дубликат email.

Кроме того, рекомендуется использовать столбец _ID в качестве первичного ключа, даже если вы его не используете.Таким образом, при использовании в будущем, например при использовании Адаптера или Списка, вам не придется обходить стороной.

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