2012-08-03 5 views
0

J'ai une table dans mon application Android qui est très simple. A un ID et quelques longs/ints pour les valeurs. Je n'ai pas mis à jour mon application depuis un moment, mais je travaille sur une énorme version totalement remaniée. J'ai pensé à rendre l'application complètement indépendante de l'originale, mais cela pourrait potentiellement décevoir les utilisateurs actuels. Au lieu de cela, je vais le faire comme une grande mise à jour de la dernière itération. Je me demande si je devrais copier toutes les données à une nouvelle table et trash l'ancienne ou simplement modifier le schéma de la table existante et éviter d'avoir à supprimer?base de données android modifiant une table que d'ajouter une valeur fixe à toutes les lignes?

Une autre question que j'ai est .... si je devais faire l'une de ces tâches, comment le ferais-je avec des valeurs prédéterminées fixes pour les nouvelles entrées dans toutes les lignes correspondant à la table d'origine? Je suppose qu'il peut être difficile de comprendre ce que je demande vraiment. Disons que je veux une valeur de "5" ajoutée à chaque ligne une nouvelle colonne dans une table déjà faite. Puis-je facilement y aller? Si c'est le cas, comment?

EDIT: Je vais être beaucoup plus précis et vous fournir ce que je veux vraiment faire. J'ai 1 table. Appelons-le Z. Z est constitué d'une clé primaire intincrement int, d'une date int, d'un prix numérique, d'une longueur numérique et d'une valeur numérique. J'ajouterai une autre table, X, qui aura une clé primaire autoincrement int, et une valeur de chaîne pour le nom. Dans la table Z, je veux ajouter les attributs: int type, et int x_id (ce lien sera lié à la chaîne dans la table X). Comment pourrais-je modifier ALTERING ma table d'origine Z en utilisant onUpgrade() puis remplir les nouveaux attributs (type et x_id) avec 2 variables (en Java)?

+0

Vous ne parlez pas de stockage local, non? Vous parlez de votre base de données dans le nuage? –

+0

stockage local, dans/data/data/ – snotyak

Répondre

1

Si vous modifiez la disposition de votre tableau ou en créez un nouveau en fonction des changements réels et de vos préférences personnelles, il n'y a pas de réponse générale à cette question.

Vous pouvez faire toutes les améliorations nécessaires/tâches de migration dans le onUpgrade Méthode de vous sous-classe SQLiteOpenHelper (es)

+0

Oui, je pense que je vais ajouter des colonnes à la table existante, car il ne devrait pas y avoir beaucoup de données (pour l'un de mes utilisateurs) mais je me demande toujours comment faire la 2ème partie? – snotyak

+0

@BackpackOnHead Augmentez la version db que vous transmettez au constructeur de SQLiteOpenHelper. Vous avez les deux, l'ancienne version et la nouvelle version disponible dans la méthode onUpgrade alors. Changez vos tables avec ALTER TABLE ... etc, basé sur l'ancienne et la nouvelle version –

+0

Oui, j'ai compris. Je ne sais pas comment faire la deuxième partie de ma question. – snotyak

Questions connexes