J'essaie d'éviter les données en double sur ma base de données, j'ai donc fait des colonnes UNIQUE, et je peux normalement les insérer.Crash dans SQLite Insert "Les colonnes ne sont pas uniques"
Le problème est quand je garde l'insertion de la même chose plus de 1 fois, puis les accidents app .. Voici 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)
Le code que j'utiliser pour insérer, à la fois SuraNumber et CurrentAya sont des colonnes UNIQUE :
Pourquoi cela se produit-il? Merci.
Update1: Le sql j'ai utilisé pour créer la table:
CREATE TABLE Favorite_Sura
(
_Id INTEGER PRIMARY KEY,
SuraNumber int,
AyaNumber int,
UNIQUE (SuraNumber, AyaNumber)
)
Je pensais que sql vérifiait la table et voyait si elles existaient elles ne sont simplement pas ajoutées .. Je les ai mises dans {..} catch (SQLiteConstraintException e) {} bien qu'il se bloque toujours :( – Omar