SQLite Drop und Recreate Table

Wie kann ich eine Tabelle mit aktualisierten Informationen löschen und neu erstellen?

Beispielsweise; Ich habe einen Tisch in meiner Bewerbung mit 5 Datensätzen.

  • Wie kann ich auf die numerische Tastatur auf EditText zurücksetzen, ohne die numerische Eingabe zu erzwingen?
  • Animation mit animationSet () in android
  • ListView oben markieren beim Scrollen
  • Richtiger Weg, um Bildschirme in Libgdx zu entsorgen
  • Tippen Sie auf außerhalb des Android-Dialogs, um es zu entlassen?
  • Implementieren von SearchView in der Aktionsleiste
  • ID Entry 1 a 2 b 3 c 4 d 5 e 

    Jetzt, wenn ich einen Datensatz lösche sagen, ID 3 die Tabelle wird

      ID Entry 1 a 2 b 4 d 5 e 

    Wie kann ich es fallen lassen und es neu erstellen, um dies zu werden:

      ID Entry 1 a 2 b 3 d 4 e 

    Tatsächlich wird das Löschen durch den Benutzer gesteuert, so dass jeder Datensatz jederzeit gelöscht werden kann.

  • EditText mit Einzeltextzeile, Zeilenumbruch und Done-Aktion?
  • So entfernen Sie den Dezimalteil aus einer Floatnummer, die .0 in Java enthält
  • So implementieren Sie Expandable Items mit LinearLayoutManager (eingeführt mit Android L)
  • Was bedeutet "ungültige Anweisung in fillWindow ()" im Android-Cursor bedeuten?
  • Funky android Activity Verhalten, wenn Bildschirm ausschaltet?
  • Was ist besser android.R oder benutzerdefinierte R?
  • 2 Solutions collect form web for “SQLite Drop und Recreate Table”

    Sie können folgendes tun: die Zeile löschen, die Sie löschen möchten:

      public boolean deleteRow(int id) { return db.delete(YOUR_TABLE, ROW_ID + "=" + _id, null) > 0; } 

    Lesen Sie die verbleibenden Einträge (nur Einträge, nicht die ID) in eine ArrayList, lassen Sie Ihre Tabelle:

      db.execSQL("DROP TABLE IF EXISTS " + YOUR_TABLE); 

    Und deinen Tisch neu erstellen. Dann werden die ID-Nummern wieder von 1-XX im Auftrag sein

    Ich weiß, das ist ein alter Posten, aber ich dachte, ich würde die Dinge für andere, die das gleiche tun können, wie Sie auf Ihrem Kommentar basieren:

    Wenn ein Datensatz gelöscht wird, wird der Löschvorgang durch die aktuell ausgewählte Zeile durchgeführt, da ich nur bis zu Zeile 4 auswählen kann, ID 5 niemals gelöscht werden kann.

    Du solltest deine Ionen nicht neu erstellen. Es verwirrt die Dinge, wenn sie als Schlüssel in einer anderen Tabelle verwendet werden, plus wenn Sie eine große Datenbank haben, die Wiederherstellung von ihnen kann nur Zeit verschwenden, wenn es wirklich keine Notwendigkeit gibt.

    Was Sie tun sollten, ist ein Array der IDs zusammen mit einem Array der Einträge zu speichern, so dass Sie wissen, welche ID zu löschen, basierend auf welcher Zeile sie ausgewählt haben (oder eine andere Art der Verknüpfung der IDs und Werte, so dass Sie sie später packen können).

    Im obigen Beispiel, nachdem jemand die Zeile mit ID 3 gelöscht hat, würden deine Arrays so aussehen:

     entries = { "a","b","d","e" } ids = { 1,2,4,5 } 

    Wenn jemand "e" auswählt, welches das vierte Element ist, löschst du einfach aus der Tabelle, wo die ID gleich dem vierten Wert im ids-Array ist, 5 in diesem Fall.

    Auf diese Weise, wenn Gegenstände ständig hinzugefügt und entfernt werden, könnte Ihre Datenbank mit ids 2, 34, 56 und 435 enden. Es spielt keine Rolle, weil Ihr Code den Track behalten und wissen, welche ID zu löschen ist.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.