Aquariophile: -> (MySQL) 2 Spalten verschieben & gleichzeitig umbenennen

Hallo!

Wie kann ich Bitte die beiden Spalten "abc, xyz" aus "table1"
in die Tabelle "table2" kopieren,
wo die Werte der beiden Spalten dann aber in die Spalten
"fgi, jkl" kopiert werden sollen und aus "table1" automatisch gelöscht werden.

Also eigentlich verschieben,
nicht kopieren.

Ich kanns zwar machen mit Perl und MySQL,
aber voll umständlich.

Vielleicht gibt es ja einen einfachen befehl für dieses Verschieben.

Danke!
Aquariophile

  1. Hoi,

    Wie kann ich Bitte die beiden Spalten "abc, xyz" aus "table1"
    in die Tabelle "table2" kopieren,
    wo die Werte der beiden Spalten dann aber in die Spalten
    "fgi, jkl" kopiert werden sollen und aus "table1" automatisch
    gelöscht werden.

    INSERT INTO tabelle2 (fgi,jkl) SELECT abc, xyz FROM tabelle1;
    DELETE FROM tabelle2;

    Das koennte so funktionieren. Ich habe leider gerade kein RDBMS zur Hand, um das
    zu testen.

    Gruesse aus dem schoenen LH,
     c.j.k

    1. Danke Christian,

      hat Super funktioniert!

      LG
      Aquariophile

  2. Hi Aqua,

    Wie kann ich Bitte die beiden Spalten "abc, xyz" aus "table1"
    in die Tabelle "table2" kopieren,
    wo die Werte der beiden Spalten dann aber in die Spalten
    "fgi, jkl" kopiert werden sollen und aus "table1" automatisch gelöscht werden.

    Mehr Randbedingungen, bitte.

    Beispielsweise:
    a) Existiert die Tabelle "table2" bereits?
    Wenn nein, dann ist Deine Aufgabe trivial:
      CREATE TABLE table2 AS SELECT abc, xyz FROM table1;

    b) Wenn ja, dann enthält sie offenbar bereits andere Felder.
    In diesem Falle ist Deine Aufgabenstellung jedoch stark unterspezifiziert, weil Du die Zeilen aus beiden Tabellen irgendwie korrellieren willst.
    Und dafür reicht Christians Ansatz bei weitem nicht aus (Deine Angaben aber auch nicht, um eine bessere Lösung zu skizzieren). Im Wesentlichen würdest Du dann zuerst das Tabellenformat ändern (ALTER TABLE) und anschließend die neuen Spalten mit Werten aus table1 füllen (UPDATE).

    Es "riecht" nach der Notwendigkeit, Sub-Selects zu verwenden, was mySQL nicht unterstützt ... auch wenn mir noch wesentliche Teile Deiner Aufgabenstellung fehlen: Stell Dich schon mal darauf ein, daß es wahrscheinlich nicht sehr viel eleganter gehen wird als mit einer Perl-Lösung.

    Aber liefere sicherheitshalber die fehlenden Informationen nach - es könnte ja sein ...

    Viele Grüße
          Michael

    1. Hallo Michael

      Danke,
      aber die Lösung von Christian geht eh!

      Danke trotzdem!

      LG
      Aquariophile