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

Henter indekset for en indsat række

LAST_INSERT_ID() har sessionsomfang.

Det returnerer den identitetsværdi, der er indsat i den aktuelle session.

Hvis du ikke indsætter nogen rækker mellem INSERT og LAST_INSERT_ID , så fungerer det okay.

Bemærk dog, at for flere værdiindsættelser vil det returnere identiteten af ​​den første række, der er indsat, ikke den sidste:

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. Oracle UTL_FILE læste CSV-fillinjer

  2. MySQL-adfærd for ON DUPLICATE KEY UPDATE for flere UNIKKE felter

  3. Sådan rettes java.sql.SQLEException:Kolonne 'id' blev ikke fundet. fejl i Spring Boot

  4. Sessionsvariabler:Hvor meget data er for meget?