J'essaie de créer une table dans ma base de données avec un ID auto-incrémenté, mais chaque fois que j'essaie d'ajouter le mot clé AUTOINCREMENT à ma requête, il me dit que:
AUTOINCREMENT n'est autorisé que sur une clé primaire INTEGER
Voici ma requête:
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_TASKS + " ( "
+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NOTETITLE + " TEXT, " + KEY_NOTECONTENT + " Text, "
+ KEY_STATUS + " INTEGER)";
db.execSQL(sql);
}
J'ai aussi essayé d'écrire AUTO_INCREMENT mais j'ai eu une erreur de syntaxe.
J'ai découvert qu'il s'agit de la source du problème car chaque fois que j'essaie de supprimer le mot AUTOINCREMENT, cela fonctionne correctement.
Alors ... quel est le problème, selon vous?
Vous devez ajouter un espace entre KEY_ID
ET INTEGER
Alors change
+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "
à
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
Créer une table avec une clé primaire entière sans avoir besoin de mentionner explicitement AUTOINCREMENT
par exemple.
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
C TEXT
);
Insert into t1(C) values("Hello");
Créer une table comme celle-ci met de l'espace avant INTEGER ....
"CREATE TABLE "+TABLE_NAME+" ("+KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT)";