Mysql
 sql >> Base de données >  >> RDS >> Mysql

AUTO_INCREMENT et LAST_INSERT_ID

SELECT max(employeeid) FROM Employee;

La requête ci-dessus renvoie la valeur de employeeid du dernier enregistrement inséré dans la table Employee car employeeid est une colonne d'incrémentation automatique. Cela semble correct, mais supposons deux threads exécutent une opération d'insertion simultanément, il est possible que vous vous trompiez d'identifiant du dernier enregistrement inséré !

Ne vous inquiétez pas, MySQL fournit une fonction qui renvoie la valeur de la colonne d'incrémentation automatique du dernier enregistrement inséré.

SELECT LAST_INSERT_ID();

LAST_INSERT_ID() est toujours spécifique à la connexion , cela signifie que même si l'opération d'insertion est effectuée simultanément à partir de différentes connexions, elle renvoie toujours la valeur de l'opération spécifique à la connexion actuelle.

Vous devez donc d'abord insérer un enregistrement dans la table des employés, exécuter la requête ci-dessus pour obtenir la valeur de l'identifiant et l'utiliser pour l'insérer dans la deuxième table.