Schwierigkeiten bei der Aktualisierung der SQlite-Tabelle
Ich habe eine Anwendung, die mit einer Tabelle arbeiten, genannt TIER. Bei der ersten Erstellung dieser Tabelle Bestand es einfach aus _id und animal_name Spalten.
Nun bin ich versucht, zu erweitern, einschließlich einer animal_biography Spalte, jedoch bin ich ein wenig Schwierigkeiten.Zuerst dachte ich, ich war nur ein Fall der Aktualisierung meiner CREATE_TABLE Anweisung des tierischen bio:
private static final String DATABASE_CREATE =
"create table " + ANIMALS_TABLE +
" (_id integer primary key autoincrement, " +
"animal_name text not null, " +
"biography text not null);";
dennoch, mit Blick in die logcat sagt es mir die Spalte Biographie ist nicht vorhanden, wenn Sie versuchen zu insert into.
Nun, ich habe versucht, aktualisieren Sie die Datenbank mithilfe der onUpgrade()
einschließlich der code
db.execSQL("ALTER TABLE" + DATABASE_NAME);
db.execSQL(DATABASE_CREATE);
aber das ist nicht die Lösung des Problems. Hat jemand irgendwelche Hinweise, wie man über die Festsetzung dieses problem?
InformationsquelleAutor der Frage Php Pete | 2011-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
SQLiteOpenHelper
es ist leicht zu aktualisieren, eine Tabelle. Sie müssen Methoden implementierenonCreate
undonUpgrade
und aktuelle version Ihrer Datenbank im Konstruktor der Klasse. Wenn die Aktualisierung Ihrer Tabelle nur Inkrement-Datenbank-version und-Nummer, geben Sie neue Abfrage zur Erstellung der Tabelle inonCreate
Methode und setzenALTER TABLE
zuonUpgrade
Methode zum aktualisieren der vorherigen version der Tabelle. Bei Android erkennt die Datenbank-version nicht übereinstimmen, wird es rufenonUpgrade
- Methode automatisch. Siehe Beispiel:Diese Methode zum aktualisieren ist der richtige Weg, das zu ändern von Tabellen ohne Daten des Nutzers, vor allem, wenn die app veröffentlicht wurde, um der öffentlichkeit bereits.
InformationsquelleAutor der Antwort GrAnd