Mysql
 sql >> Database >  >> RDS >> Mysql

LAST_INSERT_ID() in una transazione è affidabile?

Last_insert_id() di MySQL è affidabile in quanto è sempre l'ULTIMO inserimento eseguito da QUELLA PARTICOLARE connessione. Non riporterà un ID di inserimento creato da qualche altra connessione, non riporterà un inserimento che hai eseguito due connessioni fa. Non importa su quale core della CPU si è verificato l'inserimento effettivo e su quale core viene elaborata la chiamata last_insert_id(). Sarà sempre il numero ID corretto per quella connessione.

Se esegui il rollback di una transazione che ha eseguito un inserimento, last_insert_id() riporterà ANCORA quel nuovo ID, anche se non esiste più. L'id non verrà comunque riutilizzato in un successivo inserto