alex_: mehrere tabellen modifizieren

Beitrag lesen

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 RENAME tabelle ;

ALTER TABLE tabelle
ADD neuesfeld1 INT NOT NULL ,
ADD neuesfeld2 INT NOT NULL ,
ADD neuesfeld3 INT NOT NULL ;

ALTER TABLE tabelle
CHANGE neuesfeld1 umbenannt INT( 11 ) DEFAULT '0' NOT NULL ,
CHANGE neuesfeld2 neuesfeld2 TIMESTAMP DEFAULT '0' NOT NULL ,
CHANGE neuesfeld3 neuesfeld3 INT( 11 ) DEFAULT '0';

ALTER TABLE tabelle
  DROP umbenannt,
  DROP neuesfeld2,
  DROP neuesfeld3;


>   
> jetzt zufrieden?  
>   
> MfG