我試圖避免在我的數據庫上的重複數據,所以我做了UNIQUE列,我通常可以插入到他們。在SQLite中崩潰插入「列是不唯一的」
問題是,當我將保持同樣的事情不止1次,然後應用程序崩潰。這裏是logcat的:
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是唯一列:
這是爲什麼發生?謝謝。
UPDATE1:
CREATE TABLE Favorite_Sura
(
_Id INTEGER PRIMARY KEY,
SuraNumber int,
AyaNumber int,
UNIQUE (SuraNumber, AyaNumber)
)
我以爲SQL會檢查表,看看他們是否存在,他們只是不添加..我把它們放入try {..} catch(SQLiteConstraintException e){}雖然它仍然崩潰:( – Omar