Thread last_insert_id
(2 answers)
Opened by rosti at 2011-10-05 20:47
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 |