Daniel: MySQL+PHPMyAdmin

Hi,
ich möchte die struktur und nur die struktur und nichts anderes als
die struktur einer tabelle aktuallisieren.

Sprich, ich habe lokal ein paar seiten welche ich "verbessere" dadurch
kam es zu veränderungen in der struktur der tabellen, sprich es kamen
weitere daten hinzu. wenn ich diese nun aber exportiere dann macht mir PHPMyAdmin:

  
DROP TABLE IF EXISTS `tabelle_name`;  
CREATE TABLE `tabelle_name` (  
  `spalte1` int(11) NOT NULL default '0',  
  `spalte2` int(11) NOT NULL auto_increment,  
  `spalte3` varchar(10) NOT NULL default '',  
  `spalte4` varchar(60) NOT NULL default '',  
...  
  PRIMARY KEY  (`spalte2`),  
...  

ich finde den Knopf nicht wo ich sagen kann das er sowas macht:

ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2

denn die daten sollen nicht überschrieben werden. da es nur eine ist
bei der sich was geaendert hat und es zu mehreren Tabellen
verknüpfungen bestehen. daher ist das Drop schonmal nicht OK, aber ein
einfaches CREAT TABLE reicht ja auch nicht um das zu aktuallisieren,
oder?

MfG

  1. Hallo Daniel,

    ich finde den Knopf nicht wo ich sagen kann das er sowas macht:

    ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2

    Woher soll phpMyAdmin denn wissen, welche Spalten hinzugekommen sind?

    Viele Grüße,
    Christian

    1. Hi,

      ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2

      ^^ups

      Woher soll phpMyAdmin denn wissen, welche Spalten hinzugekommen sind?

      woher soll ich wissen woher wer was weis?

      ich dacht mir halt der macht dann ein

      ALTER TABLE tabellename1 IF NOT EXIST col(Spalte1) ADD col=Spalte1;
      ALTER TABLE tabellename1 IF NOT EXIST col(Spalte2) ADD col=Spalte2;
      ALTER TABLE tabellename1 IF NOT EXIST col(Spalte3) ADD col=Spalte3;
      ...
      ALTER TABLE tabellename1 IF NOT EXIST col(SpalteX) ADD col=SpalteX;
      ALTER TABLE tabellename2 IF NOT EXIST col(Spalte1) ADD col=Spalte1
      ALTER TABLE tabellename2 IF NOT EXIST col(Spalte2) ADD col=Spalte2;
      ALTER TABLE tabellename2 IF NOT EXIST col(Spalte3) ADD col=Spalte3;
      ...
      ALTER TABLE tabellenameX IF NOT EXIST col(SpalteX) ADD col=SpalteX;

      gibts da sowas? wie sieht das aus? wie kann ich das PHPMyAdmin klar
      machen? oder muss ich das per hand umschreiben?

      oder bleibt mir nur die daten aus der vorhandenen zu sichern, mit DROP -> CREATE
      die neue Tabstruktur und die daten wieder einzuspielen?

      MfG

  2. Hi Daniel,

    ich finde den Knopf nicht wo ich sagen kann das er sowas macht:

    ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2

    Bei der Tabelle auf Struktur. unter der tabelle, unter 'Druckansicht' steht:
    'Neue Felder hinzufügen: [1 ] (·) An das Ende der Tabelle  ( ) An den Anfang der Tabelle ( ) Nach [     feld1 |▼] [ OK ]'

    Gruß, Marian

    1. Hi,

      'Neue Felder hinzufügen:

      das weiß ich auch, ist aber etwas umständlich, find ich, das bei der im
      netzt jetzt auch noch zu machen, zumal mir dort kein phpmyadmin zur
      verfügung steht. bzw. ich phpMyAdmin nur für mich local konfiguriert
      habe und dies nicht ändern kann.

      MfG

      1. Hi Daniel,

        das weiß ich auch, ist aber etwas umständlich, find ich, das bei der im
        netzt jetzt auch noch zu machen, zumal mir dort kein phpmyadmin zur
        verfügung steht. bzw. ich phpMyAdmin nur für mich local konfiguriert
        habe und dies nicht ändern kann.

        1. Du kannst in der config.inc.php in deinem phpmyadmin-ordner anderen server, username und passwort angeben.

        2. dein server-ordner\mysql\bin\mysql.exe -h host -u username -pdeinpasswort (ohne leerzeichen)
           (musst halt vorher im phpmyadmin gucken, wie genau der altertable-code ist)

        Gruß, Marian

        1. Hi,

          1. Du kannst in der config.inc.php in deinem phpmyadmin-ordner anderen server, username und passwort angeben.

          nein kann ICH nicht.

          1. dein server-ordner\mysql\bin\mysql.exe -h host -u username -pdeinpasswort (ohne leerzeichen)

          wäre eine möglichkeit, aber sehr aufwendig

          Scheinbar bleibt mir keine andere möglichkeit als die daten aus der
          tabelle zu speichern und dann mit DROP -> Creat die Tabelle wieder zu
          erstellen mit der neuen struktur und die gespeicherten daten von vorher
          wieder einzuspielen.

          MfG

          1. Hi Daniel,

            1. dein server-ordner\mysql\bin\mysql.exe -h host -u username -pdeinpasswort (ohne leerzeichen)

            wäre eine möglichkeit, aber sehr aufwendig

            nein! da kannst du (nach 'USE datenbank') gleich den befehl eingeben!

            Gruß, Marian

            1. Hi,

              nein! da kannst du (nach 'USE datenbank') gleich den befehl eingeben!

              ich weis

              aber ich schreib doch nicht von hand, zumindest hab ichs nicht vor da mir der andere weg einfach und schneller erscheint, x-mal

              ALTER TABLE tabelle ADD IF NOT EXISTS spalte INT(11) NOT NULL;
              ALTER TABLE tabelle ADD IF NOT EXISTS spalte2 DATE NOT NULL;
              etc. etc.

              MfG

              1. echo $begrüßung;

                aber ich schreib doch nicht von hand, zumindest hab ichs nicht vor da mir der andere weg einfach und schneller erscheint, x-mal

                ALTER TABLE tabelle ADD IF NOT EXISTS spalte INT(11) NOT NULL;
                etc. etc.

                Das machst du mit Sicherheit nicht, weil es diese Syntax nicht gibt.

                Wie wärst, wenn du dir von dem einen Server das CREATE-Statement anzeigen lässt, die geänderten Zeilen rauskopiert und ein ALTER TABLE drumherum schreibst und dieses Statement dann zum anderen Server sendest?

                echo "$verabschiedung $name";