Comment mettre à jour le tableau en sqlite?
J'ai deux table est "TABLE_SUBJECT" et le second est "TABLE_CHAPTER".Maintenant, je veux
ajouter un peu de colonne et de supprimer précédent. Ma question est que la façon de le faire. j'essaie de mettre à jour, mais
l'affichage précédent n'est pas nouvelle. J'ai besoin de supprimer précédente et mettre à jour le tableau avec une colonne.
J'ai changer de numéro de version, mais il ne fonctionne pas. Merci de me donner des conseils ou de référence.
Voici mon code de SQLite:
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
database.execSQL(DATABASE_CREATE1);
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
//TODO Auto-generated method stub
Log.w(MySQLiteHelper.class.getName(), "Upgrading database from version "
+ oldVersion + " to " + newVersion
+ ", which will destroy all old data");
database.execSQL("DROP TABLE IF EXISTS " + TABLE_SUBJECT);
database.execSQL("DROP TABLE IF EXISTS" + TABLE_CHAPTER);
onCreate(database);
}
Vous devez vous connecter pour publier un commentaire.
vous essayez ce code
Vous ne pouvez pas supprimer des colonnes dans SQLite. Il y a une solution il est décrit ici dans le FAQ.
Pour ajouter une nouvelle colonne, vous pouvez simplement augmenter la version de base de données et de changer de créer des chaînes vous avez obtenu de la base de données souhaitée de mise en page (suppression de la colonne que vous souhaitez supprimer et ajouter les autres). Lorsque la base de données est ensuite ouvert onUpgrade est appelée, ce qui permet de supprimer les tables existantes. Après que la changé les tables sont créées. Ce n'est pas une bonne méthode, car vous perdez toutes les données dans la base de données.
Pour ajouter une nouvelle colonne sans perdre toutes les données d'utilisation, vous devrez changer le onUpgrade méthode à quelque chose comme ceci (ce dernier prévoit que l'actuelle version de base de données est 1, sinon il suffit de modifier le nombre de cas) et que l'augmentation de la version de base de données:
Cette méthode est évolutive, parce que quand il y a de nouveaux changements, vous pouvez simplement ajouter le cas 2, 3... N'ajoutez pas de pause à la fin de l'affaire. De cette façon, si une application de mise à jour augmente la version 3 et la mise à jour de l'application est toujours sur 1 (peut-être qu'il a raté une mise à jour) toutes les modifications sont appliquées.
Ici vous pouvez trouver de la documentation pour l'instruction alter table. L'sqlite site (sqlite.org) est en général d'une grande aide pour trouver ce genre de choses.
database.execSQL(DATABASE_CREATE);
qui ne fait pas état de ce que la version de la base de données est, je suis confrontée au même problème en ce moment