Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist LAST_INSERT_ID() in einer Transaktion zuverlässig?

Last_insert_id() von MySQL ist insofern zuverlässig, als es immer die LETZTE Einfügung ist, die von DIESER BESTIMMTEN Verbindung durchgeführt wird. Es wird keine Insert-ID gemeldet, die von einer anderen Verbindung erstellt wurde, es wird kein Insert gemeldet, das Sie vor zwei Verbindungen durchgeführt haben. Es spielt keine Rolle, auf welchem ​​CPU-Kern die eigentliche Einfügung erfolgte und auf welchem ​​Kern der last_insert_id()-Aufruf verarbeitet wird. Es wird immer die richtige ID-Nummer für diese Verbindung sein.

Wenn Sie eine Transaktion zurücksetzen, die eine Einfügung durchgeführt hat, meldet last_insert_id() NOCH diese neue ID, auch wenn sie nicht mehr existiert. Die ID wird jedoch bei einer nachfolgenden Einfügung nicht wiederverwendet