데이터베이스에 중복 데이터가 발생하지 않도록하기 위해 UNIQUE 열을 만들었으므로 일반적으로 삽입 할 수 있습니다.SQLite에 크래시 삽입 "열이 고유하지 않습니다"
문제는 내가 같은 일을 1 개 이상 시간을 삽입 한 후 응용 프로그램 충돌을 지킬 때 .. 여기입니다 로그 캣입니다 :
07-03 10:33:53.577: ERROR/Database(19974): Failure 19 (columns SuraNumber, AyaNumber are not unique) on 0x2dc560 when executing 'INSERT INTO Favorite_Sura (SuraNumber,AyaNumber) VALUES (17,1)'
07-03 10:33:54.440: ERROR/AndroidRuntime(19974): FATAL EXCEPTION: Thread-11
07-03 10:33:54.440: ERROR/AndroidRuntime(19974): android.database.sqlite.SQLiteConstraintException: columns SuraNumber, AyaNumber are not unique: INSERT INTO Favorite_Sura (SuraNumber,AyaNumber) VALUES (17,1)
07-03 10:33:54.440: ERROR/AndroidRuntime(19974): at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
07-03 10:33:54.440: ERROR/AndroidRuntime(19974): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1763)
07-03 10:33:54.440: ERROR/AndroidRuntime(19974): at omar.quran1.Quran$16.run(Quran.java:910)
07-03 10:33:54.440: ERROR/AndroidRuntime(19974): at java.lang.Thread.run(Thread.java:1019)
내가 삽입하기 위해 사용하는 코드, SuraNumber 및 CurrentAya 모두 UNIQUE 열은 :
왜 이런 일이 발생합니까? 감사.
갱신 1 :
CREATE TABLE Favorite_Sura
(
_Id INTEGER PRIMARY KEY,
SuraNumber int,
AyaNumber int,
UNIQUE (SuraNumber, AyaNumber)
)
나는 SQL이 테이블을 검사하여 추가되었는지 알지 못한다고 생각했다. 나는 그것들을 {..} catch (SQLiteConstraintException e) {}에 넣었지만 여전히 충돌한다. ( – Omar