Dieter: Auf Ergebnis in Batch Statement zugreifen

Beitrag lesen

Hi,

ich habe folgendes Problem:
In einer Java-Anwendung füge ich mehrere Statements zu einem
Batch Statement zusammen und feuer das an eine mysql DB ab.
Dabei wird ggf. an verschiedenen Stellen die LAST_INSERT_ID()
gebraucht, um bei einem INSERT-Statement einen Fremdschlüssel zu
setzen.

Das funktioniert beim ersten INSERT-Statement wunderbar,
danach, wenn allerdings mehrere Datensätze den gleichen Fremdschlüssel bekommen sollen, dann funktioniert das nicht,
weil sich die LAST_INSERT_ID() nach dem ersten INSERT geändert hat.

Meine Frage:
Gibt es die Möglichkeit die LAST_INSERT_ID() zwischenzuspeichern,
so dass sie von mehreren Folgestatements benutzt werden kann?
Aufgrund des Batch-Konstrukts ist eine anwendungsseitige Speicherung
der ID nicht möglich...

Das ganze nochmal in kurz (und hoffentlich verständlich), so wie
es vom Prinzip her funktionieren soll:

INSERT ..... ; SELECT LAST_INSERT_ID() AS lid; INSERT INTO bla ... VALUES (d,e, lid); INSERT INTO blabla... VALUES (f, g, lid)

(So funktioniert das natürlich nicht...)

Ich hoffe das war nicht zu umständlich erklärt :-/

Vielen Dank für Eure Hilfe!