steckl: mySql: spalte nachtraeglich an beliebiger Stelle einfuegen

Hallo,

ich habe mir gestern eine Datenbank gebastelt und dabei leider eine Spalte vergessen :(

mit
alter table TABELLENNAME add SPALTENNAME varchar(15);
wird die Spalte immer als letzte eingefuegt.

ist es moeglich, diese noch nachtraeglich an einer bestimmten stelle (z.B. nach der 2.Spalte) einzufuegen? oder muss ich dazu die ganze Tabelle nochmal loeschen?

mfG,
steckl

  1. Hallo,

    alter table TABELLENNAME add SPALTENNAME varchar(15);

    Es ist zwar nicht falsch, aber üblicherweise werden die Schlüsselworte groß und der Rest klein geschrieben, also so: "ALTER TABLE tabellenname ADD COLUMN spaltenname VARCHAR(15)" (ja, ich weiß das COLUMN im Query ist optional).

    ist es moeglich, diese noch nachtraeglich an einer bestimmten stelle (z.B. nach der 2.Spalte) einzufuegen?

    Ja - du musst noch ein "AFTER col" einfügen, wobei col die Spalte ist, nach der die neue Spalte eingefügt werden soll - siehe Doku.

    Grüße aus Nürnberg
    Tobias

    --
    TOP7: Hinweise, dass dein Hamster ein CIA-Spion ist
    Selfcode: sh:( fo:) ch:? rl:| br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:) ls:[ js:|
    1. hi,

      alter table TABELLENNAME add SPALTENNAME varchar(15);
      Es ist zwar nicht falsch, aber üblicherweise werden die Schlüsselworte groß und der Rest klein geschrieben, also so: "ALTER TABLE tabellenname ADD COLUMN spaltenname VARCHAR(15)" (ja, ich weiß das COLUMN im Query ist optional).

      stimmt, is uebersichtlicher, aber ich war wohl nur zu faul um shift zu druecken ;)

      ist es moeglich, diese noch nachtraeglich an einer bestimmten stelle (z.B. nach der 2.Spalte) einzufuegen?
      Ja - du musst noch ein "AFTER col" einfügen, wobei col die Spalte ist, nach der die neue Spalte eingefügt werden soll - siehe Doku.

      danke, so funzts :)

      mfG,
      steckl