ON DUPLICATE KEY UPDATE bei mehrfach-INSERT??

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

  • ON DUPLICATE KEY UPDATE bei mehrfach-INSERT??

    Ich hab ne Tabelle mit den Feldern "id", "vorname", "nachname" und "auftrag" mit einem UNIQUE('vorname', 'nachname'), damit jeder Mitarbeiter nur 1x vorkommen kann.
    Wenn ich jetzt einen Datensatz einfüge gibt es ja die Möglichkeit mit ON DUPLICATE KEY UPDATE zu arbeiten, falls die Vorname-Nachname-Kombination schon existiert:
    Code:
    INSERT INTO tabelle (vorname, nachname, auftrag) 
         VALUES ('$vorname', '$nachname', '$auftragsnummer') 
         ON DUPLICATE KEY UPDATE auftrag = '$auftragsnummer'
    Wie aber nutze ich diese Methode, wenn ich gleichzeitig mehrere Datensätze einfügen will?
    Also nach dem Motto
    Code:
    INSERT INTO tabelle (vorname, nachname, auftrag) 
         VALUES
              ('$vorname1', '$nachname2', '$auftrag1'),
              ('$vorname2', '$nachname2', '$auftrag2'),
              ('$vorname3', '$nachname3', '$auftrag3')
    ????
    Weiß da einer von euch Rat?

  • #2
    Ich denke das es so funktionnieren sollte.... Nicht schlagen wenn es nicht klappt


    Code:
    INSERT INTO tabelle (vorname, nachname, auftrag) 
    VALUES
    ('$vorname1', '$nachname2', '$auftrag1'),
    ('$vorname2', '$nachname2', '$auftrag2'),
    ('$vorname3', '$nachname3', '$auftrag3')
    ON DUPLICATE KEY UPDATE auftrag=VALUES(auftrag);
    --> http://dev.mysql.com/doc/refman/5.1/...duplicate.html
    Zuletzt geändert von Sebastian.J; 20.01.2007, 20:17.

    Kommentar


    • #3
      Keine Angst - es funktioniert!!

      Ich hatte da auch im Vorfeld ehrlich gesagt Probleme, das MySQL-Handbuch zu verstehen und dachte das UPDATE würde sich nur auf einen Datensatz beziehen.

      Die einzige Alternative wäre ja gewesen, auf REPLACE INTO zurückzugreifen, dann hätten sich meine auto-increment-IDs aber über alle Maßen erhöht.
      Das hab ich mir jetzt dank Deiner Hilfe erspart!

      Vielen vielen Dank!

      Kommentar

      Lädt...
      X