Hello,
ich wollte eigentlich einen einfachen und eleganteren weg finden.
Bei einigen Datenbanksystemen gibt es auch die "next_insert_id".
Z.B. ist die bei MySQL auch verfügbar.
Dort heißt sie aber nur "insert_id"
http://dev.mysql.com/doc/refman/5.1/en/server-session-variables.html#sysvar_insert_id
Auf diese kannst Du sofort im Statement zugreifen, wenn Du Redundanz benötigst.
Damit würde das Statement dann vermutlich auch atomar...
...wobei ChrisB dir ja auch schon gesagt hat, dass die last_insert_id pro Connection gilt und damit auch keine Probleme bereite würde.
Die next_insert_id gilt pro Tabelle und NICHT pro Connection. Deshalb darf man darauf (für Deine Zwecke) auch nur _innerhalb_ _eines_ Statements zugreifen, da das von der DB immer atomar abgewickelt wird, also sie nicht erst auslesen mit einem Statement und mit einem anderen dann benutzen. Das würde zu einem TOCTOU-Problem führen http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg