sql >> Base de Datos >  >> RDS >> Mysql

Recuperar el índice de una fila insertada

LAST_INSERT_ID() tiene ámbito de sesión.

Devolverá el valor de identidad insertado en la sesión actual.

Si no inserta ninguna fila entre INSERT y LAST_INSERT_ID , entonces funcionará bien.

Sin embargo, tenga en cuenta que para inserciones de valores múltiples, devolverá la identidad de la primera fila insertada, no la última:

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 */