sql >> Databasteknik >  >> RDS >> Mysql

Hämtar indexet för en infogat rad

LAST_INSERT_ID() har sessionsomfång.

Det kommer att returnera identitetsvärdet som infogats i den aktuella sessionen.

Om du inte infogar några rader mellan INSERT och LAST_INSERT_ID , då kommer det att fungera bra.

Observera dock att för multipla värdeinfogningar kommer den att returnera identiteten för den första raden som infogades, inte den sista:

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


  1. Varför fungerar inte GRANT i MySQL?

  2. Extrahera veckonummer från ett datum i SQL Server (T-SQL)

  3. Skillnad mellan vänster skarv och vänster ytter skarv

  4. MariaDB 10 CentOS 7 flytta datadir elände