이 오류에 관해 많은 질문이 있지만 Logcat에서 모든 입력란이 올바르게 채워지는 것처럼 보이지만 오류가 발생하는 이유를 이해할 수 없습니다. 여기 Android-SQLiteConstraintException 오류 코드 19 : 제약 조건이 실패했습니다.
테이블의 창조입니다 : 내가 저장하려고 경우 다음public void onCreate(SQLiteDatabase db) {
String ddl = "CREATE TABLE Politician (id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE , idpolitician INTEGER NOT NULL, name TEXT NOT NULL, picture TEXT , position TEXT NOT NULL, country TEXT NOT NULL, state TEXT NOT NULL, city TEXT NOT NULL);";
db.execSQL(ddl);
}
입니다. 모든 필드가 채워 볼 수 있듯이
01-08 04:03:31.149 32633-32633/? E/Database﹕ [SQLiteDatabase.java:1428:insert()] Error inserting
state=SP position=governador picture=example idpolitician=1 city=Sao Paulo country=Brasil name=Alckmin
android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
at com.politify.dao.DbManegament.savePolitician(DbManegament.java:44)
: 여기
public void savePolitician(Politician politician) {
ContentValues values = new ContentValues();
values.put("idpolitician", politician.getId());
values.put("name", politician.getName());
values.put("picture", politician.getPictureFilename());
values.put("position", politician.getPosition());
values.put("country", politician.getCountry());
values.put("state", politician.getState());
values.put("city", politician.getCity());
mDatabase.insert("Politician", null, values);
}
그리고
는 로그 캣입니다. 누구든지 도움
중복 값을 입력하고 있습니까? – Raghunandan
제거하고 다시 설치하면 가능한 오래된 데이터베이스가 삭제되고 onCreate()가 다시 호출됩니다. 다른 제약 조건을 가진 이전 버전의 스키마가있는 데이터베이스 파일이 있다고 생각합니다. – laalto
예, 3 가지 항목을 추가하려고했습니다. 그들은 같은 주와 나라를 가지고 있지만, 이념 주의자, 이름과 그림에 대한 다른 가치가 있습니다. 하지만이 오류는 첫 번째 항목에서 가져 왔습니다. 아직 정치인은 없다. –