Thread last_insert_id (2 answers)
Opened by rosti at 2011-10-05 20:47

rosti
 2011-10-05 20:47
#152893 #152893
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
Engine ist MySQL 5.*
Es gibt zwei Möglichkeiten, einmal die MySQL-eigene Funktion, oder die Methode $dbh->last_insert_id.

Zu beiden Varianten steht in der Doku, dass das Statement vorher erfolgreich gewesen sein muss, ok, ich verpacke das Statement und die last_insert_id-Abfrage in eval{} mit RaiseError => 1 und prüfe auf Exception.

Meine Frage ist die: Ist das dann zusammen atomar? Immerhin ist MySQL->LAST_INSERT_ID eine globale Abfrage und auf der DB ist ne ganze Menge los (um das mal so zu sagen); es gibt da noch andere, möglicherweise zeitgleiche Prozesse, die INSERTs mit auto_increment machen auf andere Tabellen.

Vermutlich ist die DBI-Methode $dbh->last_insert_id sicherer(atomar), weil ($catalog, $schema, $table, $field) angegeben ist?

Bitte mal um Hilfestellung,
Rolf

View full thread last_insert_id