Ändern Sie den Primärschlüssel einer Tabelle in SQLite

Ich habe folgende Tabelle:

[id,lang,data] 

Wo der Primärschlüssel id

Ich möchte den Primärschlüssel zu id,lang ändern id,lang ohne den Inhalt der Tabelle zu verlieren. Was ist die Abfrage, die ich laufen muss, um es zu ändern

Vielen Dank

  • Android sqlite rollback
  • Wie man den Schlüssel in SQLCipher für Android zu speichern
  • Android java.lang.IllegalStateException: Konnte die Zeile 0, col 0 aus CursorWindow nicht lesen
  • Android One Plus Two: Fehler beim Ändern des Gebietsschemas für db
  • Verwenden der benutzerdefinierten Datei für Android sqlite Datenbank
  • Android sqlLite ON CONFLICT IGNORE wird im ICS ignoriert
  • Android: Einfügen von sqlite Datensatz mit AUTOINCREMENT Spalte
  • SQLite: Effiziente Substringsuche in großer Tabelle
  • One Solution collect form web for “Ändern Sie den Primärschlüssel einer Tabelle in SQLite”

    Wie pro Kommentar von @GarnerJosh, können Sie nicht einen einzigen Befehl ausführen, um es zu ändern – SQLite erlaubt keine Änderung bestehender Tabellenstrukturen. Erstellen Sie stattdessen eine neue Tabelle mit einem zusammengesetzten Primärschlüssel und kopieren Sie die Daten über:

     CREATE TABLE my_table_copy( id INTEGER, lang INTEGER, data TEXT, PRIMARY KEY (id, lang) ); INSERT INTO my_table_copy (id, lang, data) SELECT id, lang, data FROM my_table; DROP TABLE my_table; ALTER TABLE my_table_copy RENAME TO my_table; 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.