INSERT INTO SELECT * (problem)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • INSERT INTO SELECT * (problem)

    hi,

    ich will einen kompletten datensatz von einer tabelle in die andere transferieren was bisher mit "INSERT INTO tab1 SELECT * FROM tab2 WHERE ...." passiert.
    nun kann es vorkommen das die index-id aus tab1 bereits in tab2 vorhanden ist weil in die tabellen auch andere daten eingefügt werden können.

    wie kann ich jetzt mysql sagen es soll alle daten kopieren bis auf die index-id und diese dann wie beim normalen insert via auto_increment einfügen?

    ich weiss das ich es mit IGNORE ganz unterbinden kann falls es einen doppelten eintrag gibt aber das ist nicht mein ziel.

    im netz gesucht habe ich schon und auch hier im forum, aber leider nichts dazu gefunden.

    "INSERT INTO tab1 SELECT *,(!id) FROM tab2" funktioniert leider nicht.

  • #2
    einfach alle spaltennamen angeben?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      genau das wollte ich vermeiden weil diese tabellen öfter mal in ihrer struktur verändert werden. gibt es wirklich keine andere lösung?

      Kommentar


      • #4
        ... die Datensätze (uU in ein Array) auslesen und anschliessend in die andere tabelle eintragen, ohne id anzugeben wäre vtl eine Möglichkeit - sofern die auf auto_inc gesetzt ist.
        *?*
        ...bei meinem Schlafdefizit fällt mir grade auch nichts besseres ein.
        Gute Nacht zusammen.

        Kommentar


        • #5
          hmm ja so werde ichs machen.

          ich hatte nur gehofft es gibt eine elegantere lösung das ganze in einem schritt zu erledigen statt alle felder (35 stück) anzugeben oder eben mit 2 schritten via php zu erledigen

          Kommentar

          Lädt...
          X