Hi,
ich will in einem Makro eine Tabellenspalte, die ich an das Ende einfüge, an die 2.Stelle der Tabelle schieben.
Warum fügst du sie nicht gleich weiter vorne ein?
Ich habe es mit folgendem SQL-Befehlt versucht:
ALTER TABLE tab ADD spalte_neu AFTER spalte_1
Da fehlt noch der Datentyp (und andere optionale Eigenschaften wie primär-schlüssel, default Wert, ...) von spalte_neu:
http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
Außerdem erzeugt dir der "ALTER TABLE ... ADD COLUMN" befehl nur eine neue (leere) Spalte. Diese musst du dann noch mit Werten füllen:
UPDATE TABLE SET spalte_neu=spalte_alt;
und dann noch die spalte_alt löschen:
DROP COLUMN spalte_alt;
(hier würde ich aber vorher nochmal überprüfen ob die vorhergehenden Anweisungen funktioniert haben)
Das Programm liefert mir einen Fehler in der ALTER TABLE-Anweisung zurück.
Wie dir schon geschrieben wurde wäre diese interessant für uns um zu helfen. Außerdem wäre noch das DBMS das du benutzt interessant. Ich habe einfach mal geantwortet, wie es unter mySql 5 geht.
Ohne AFTER-Anweisung steht die Spalte am Ende der Tabelle.
Welchen Befehl hast du hierfür verwendet?
Dabei hast du wohl auch einen Datentyp angegeben, oder?
Wie bekomme ich die Spalte dort weg ?
DROP COLUMN ... ;-)
mfG,
steckl