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

Récupérer l'index d'une ligne insérée

LAST_INSERT_ID() a une portée de session.

Il renverra la valeur d'identité insérée dans la session en cours.

Si vous n'insérez aucune ligne entre INSERT et LAST_INSERT_ID , alors tout fonctionnera correctement.

Notez cependant que pour plusieurs insertions de valeurs, il renverra l'identité de la première ligne insérée, pas la dernière :

INSERT
INTO    mytable (identity_column)
VALUES  (NULL)

SELECT  LAST_INSERT_ID()

--
1

INSERT
INTO    mytable (identity_column)
VALUES  (NULL), (NULL)

/* This inserts rows 2 and 3 */

SELECT  LAST_INSERT_ID()

--
2

/* But this returns 2, not 3 */