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

Recupero dell'indice di una riga inserita

LAST_INSERT_ID() ha ambito di sessione.

Restituirà il valore di identità inserito nella sessione corrente.

Se non inserisci alcuna riga tra INSERT e LAST_INSERT_ID , allora funzionerà bene.

Nota però che per inserimenti di più valori, restituirà l'identità della prima riga inserita, non l'ultima:

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