index umbenennen

  • Moin,

    ich habe folgendes Problem.
    ich würde gerne einen Feldnamen in einer Tabelle umbenennen.
    Per SQLite-Administrator ist das auch per klick&klack kein Problem.
    Ich würde es aber gerne aus dem Code heraus machen.

    DB-Connecten und dann per SQite_Exec ein Statement anschuppsen, richtig!?

    aber welches?

    Hilfeeeeeeeeeee

    Bedankt im vorraus
    CaPpY0815

    AutoIt 3.3.12.0 // SciTE 3.4.4 // Sublime Text 2 AU3 language package 1.3.6

  • Moin CaPpy0815,

    normalerweise geht das mit 'ALTER TABLE <Tabellenname> CHANGE <Neuer FeldName> <Alter Feldname> <Typ des Feldes>'.
    Aber leider geht das bei SQLite (laut Beschreibung) nicht.
    Vielleicht kannst du ja den SQLite-Administrator automatisieren ;)

    • Offizieller Beitrag

    Hallo!

    Bei SQLite geht das nur mit dem Umweg über Temporäre Tabellen, so löst es SQLite-Administrator übrigens auch!

    Beispiel:

    Angenommen eine Tabelle mit Adressen enthält die Felder id, Str, und Ort. Der Feldname Str soll nun Strasse umbenannt werden.

    Dazu wird zuerst eine Temporärtabelle erzeugt:

    Code
    CREATE TEMPORARY TABLE TEMP_TABLE(id INTEGER PRIMARY KEY, Strasse TEXT, Ort TEXT);


    Dann wird die Temporärtabelle mit den Werten aus Adresse gefüllt:

    SQL
    INSERT INTO TEMP_TABLE SELECT id, Str, Ort FROM Adressen;


    Dann kann die Tabelle Adressen gelöscht werden:

    Code
    DROP TABLE Adressen;


    Jetzt wird die Tabelle Adressen neu erstellt und mit den Werten aus der Temptabelle wieder gefüllt:

    Code
    CREATE TABLE Adressen (id INTEGER PRIMARY KEY, Strasse TEXT, Ort TEXT);
    INSERT INTO Adressen SELECT id, Strasse, Ort FROM TEMP_TABLE;
    DROP TABLE TEMP_TABLE;

    Das ist leider die einzige Möglichkeit um Feldnamen in SQLite umzubenenen.