So aktualisieren Sie eine SQLite-Datenbank und NICHT verlieren alle vorhandenen Daten?
Bin ich eine Tabelle hinzufügen meine app SQLite-DB. Alle meine syntax es ist in Ordnung, nicht das Problem. Aber ich habe einige Mühe, die neue Tabelle korrekt erstellt werden. Ich fügte hinzu, die neue Tabelle....
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
db.execSQL(CREATE_REQUESTS);
db.execSQL(CREATE_OVERRIDE);
}
Meinen auf create-Methode. Ich habe 3 Tabellen. Wenn ich aktualisiert, die Versionsnummer, bekam ich die Fehlermeldung "Tabelle Anfragen (in Bezug auf CREATE_REQUESTS) wurde bereits erstellt." Ein Blick auf meine onUpgrade-Methode...
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS contacts");
onCreate(db);
}
Führte mich zu verstehen, dass die Linie db.execSQL("DROP TABLE IF EXISTS contacts")
bezieht sich auf meine DATABASE_CREATE Tabelle in der onCreate-Methode wird verwendet, um drop die alte Tabelle, dann die nächste Zeile, onCreate(db);
neu erstellt. Ich habe keine add-Anfragen in das execSQL-Linie, die ist, was den Fehler verursacht hat. Hier ist das Problem: ich würde lieber nicht verlieren, die Daten in den beiden Tabellen habe ich schon. Gibt es eine Möglichkeit um eine Tabelle hinzuzufügen, wie ich versuche zu tun, und nicht verlieren alle alten Daten? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tun, was Sie wollen in
onUpgrade
. Sie könnenALTER
hinzufügen neue Spalten für Ihre Tabelle.Schlimmsten Fall, wenn Sie Ihr schema ist vollständig und völlig unterschiedlich, müssen Sie zum erstellen der neuen Tabelle, füllen es mit Daten aus der alten Tabelle, und löschen Sie dann die alte Tabelle.
In jedem Fall
onUpgrade
wurde so konzipiert, dass für ein reibungsloses upgrade ohne den Verlust von Daten. Es ist nur an Ihnen, es richtig umsetzt.wenn DB version : 6
Wenn Sie ein upgrade auf : 7 ( ich bin hinzufügen 1. neue Spalte in die 3 Tabellen)
Wo : "DATABASE_ALTER_ADD_PAPER_PAID" query.
Nach beiden oben genannten Betrieb es funktioniert gut für die frische Installation Benutzer-und-app-upgrade Benutzer