AngeDeLaMort cevabı neredeyse hakkıdır. Elbette, sorunla başa çıkmak için en uygun şekilde bir defada bir satır eklemek ve (ölçeklenebilirlik açısından ek yarar vardır) insert_id yoklayacak veya başka bir yerde dizisini üretmektir.
Sadece çok yolu bu başarısız olacaktır olabilir var - Ben son insert_id belirlemek için çalışıyor ve bu en son insert_id after insert karşılaştırarak karşı şiddetle tavsiye ediyorum.
Ama ... alternatif bir yaklaşım olacaktır:
....
"INSERT INTO destn (id, data, other, trans_ref)
SELECT id, data, other, connection_id() FROM source";
....
"SELECT id FROM destn WHERE trans_ref=connection_id()";
....
"UPDATE destn SET trans_ref=NULL where trans_ref=connection_id()";
İkinci sorgu (bu 3 sorgular için aynı bağlantıyı kullanan varsayar unutmayın) oluşturulan kimliklerini dönecektir. (Yani yeniden kullanılır) çıkardığınızda bağlantı kimlikleri havuza geri gitmek için çünkü üçüncü sorgu gereklidir.
C.