Hello,
Nen multiple Insert muss atomar sein. Der läuft doch in einer Transaktion, also wenn es meinetwegen nen Duplicate Key gibt, wird doch ein Rollback ausgeführt, und kein Value wird geschrieben. Erst wenn alle Values drinnen stehen, kommt doch der Commit. D.h. da kann nix dazwischen funken.
Jemand anderer Meinung?
Ja, MySQL. MyISAM ist keine transaktionale Storage-Engine. Ein Multiple-Insert bricht beim Duplicate Key einfach ab. Was drin ist, ist drin, der Rest nicht.
Darum würde ich solche Multiinserts bei MySQL, wenn ich sie denn verwenden würde, auch immer mit einer eindeutigen Transaktionsnummer versehen, also im Tabellendesign eine zusätzliche Spalte berücksichtigen. Dann kann man hinterher die Datensätze wieder selektieren.
Im Interesse der Datenintegrität würde ich aber eher auf Multiinserts verzichten.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg