sql >> Database >  >> RDS >> Mysql

De laatst ingevoegde id's voor meerdere rijen ophalen

Als u last_insert_id() aanroept, krijgt u de id van de EERSTE rij die in de laatste batch is ingevoegd. Alle andere die zijn ingevoegd, zijn gegarandeerd opeenvolgend.

Tenzij je iets heel vreemds doet, kun je hiermee de ID van elke rij gemakkelijk genoeg berekenen.

Eigenlijk varieert het gedrag in 5.1, afhankelijk van de instelling van de innodb auto increment mode parameter; dit zou niet uit moeten maken. Zolang u de standaard niet wijzigt, ziet u het verwachte gedrag.

Er zijn af en toe gevallen waarin dit niet doet wat u verwacht en niet nuttig is, bijvoorbeeld als u een ON DUPLICATE KEY UPDATE of INSERT IGNORE uitvoert. In deze gevallen moet u iets anders doen om de ID's van elke rij te bepalen.

Maar voor een gewone INSERT-batch, zonder waarden gespecificeerd voor de auto-inc-kolom, is het eenvoudig.

Een volledige beschrijving van hoe automatische incrementen zijn behandeld in innodb is hier



  1. Laravel Query Builder verwijderen

  2. Hoe de kolomnamen samen met de resultatenset in php/mysql te krijgen?

  3. Hoe voer ik een bulk in in mySQL met node.js

  4. Records van de afgelopen 3 maanden alleen retourneren in MySQL