nope, irgendwie hatte ich das anders gemeint:
Ich habe eine DB mit hunderten von Tabellen. Jetzt will ich in allen Tabellen zb eine neue Spalte hinzufügen. Angenommen ich kenn die Tabellennamen nicht mal.
so würde ich in perl:
- SHOW TABLES
- für jede table:
- next wenn die tabelle nicht die zu löschende spalte hat
- spalte löschen
Die Frage ist nun, ob ich mir an der Stelle Perl Code sparen kann indem ich mysql schachtele: "ALTER TABLE SELECT ... DROP ..." irgendwie sowas hatte ich vermutet, da hört aber mein Wissen auf...
gruß
Hi,
argl, hast du dir überhaupt durchgelesen was ich gefragt habe?
Ja, aber du kannst nur eine tabelle anch der anderen machen.für mehrere spalten musst du das so machen:
ALTER TABLE
test
RENAMEtabelle
;ALTER TABLE
tabelle
ADDneuesfeld1
INT NOT NULL ,
ADDneuesfeld2
INT NOT NULL ,
ADDneuesfeld3
INT NOT NULL ;ALTER TABLE
tabelle
CHANGEneuesfeld1
umbenannt
INT( 11 ) DEFAULT '0' NOT NULL ,
CHANGEneuesfeld2
neuesfeld2
TIMESTAMP DEFAULT '0' NOT NULL ,
CHANGEneuesfeld3
neuesfeld3
INT( 11 ) DEFAULT '0';ALTER TABLE
tabelle
DROPumbenannt
,
DROPneuesfeld2
,
DROPneuesfeld3
;
>
> jetzt zufrieden?
>
> MfG