Hi!
Gibt es eine Möglichkeit alle IDs des letzten Insert Statements abzufangen?
Nein, jedenfalls nicht auf einfache Art und Weise. Aber vielleicht brauchst du gar nicht alle explizit zu kennen.
Ich möchte mit einem Insert mehrere Values einfügen, also
INSERT INTO test(bla) VALUES (1),(2),(3)
mysql_insert_id
würde mir ja nur den AUTO_INCREMENT vom Value (3) liefern.
Nein, es liefert bei Mehrfach-Inserts den Wert des _ersten_ eingefügten Wertes, also hier von (1).
Ich bräuchte aber von jedem Value das AUTO_INCREMENT.
Vermutlich brauchst du das dann nur noch hochzuzählen. "Vermutlich" deswegen, weil ich keine Aussage fand, dass ein Multi-Insert atomar abgearbeitet wird, also kein anderer Prozess dazwischenfunken kann. Ich vermute das aber, auch im Hinblick auf Replikationen zu Slaves, bei denen die Daten nicht auseinanderlaufen dürfen. Siehe auch den folgenden Satz aus der Dokumentation zu LAST_INSERT_ID(): "If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only. The reason for this is to make it possible to reproduce easily the same INSERT statement against some other server."
Lo!