Det är ett exempel på automatisk inkrementlåsning i InnoDB:Eftersom du kör 2 satser samtidigt i samma session:det automatiska inkrementlåset erhålls av den första frågan och genereringen av autoinkrementvärde interfolieras inte mellan satserna - det är hela poängen transaktion.
Detta kommer alltid att ske av design:Om det inte gjorde det, så skulle transaktionerna i InnoDB inte fungera. Skalbarheten under belastningar av OLTP-typ skulle vara hemsk eftersom varje insats skulle behöva vänta på att varannan insats ska slutföras, sätta igång, eller ännu värre - rullas tillbaka.
Dvs:Om din första insättning går 5 gånger längre än din andra, och misslyckas och rullas tillbaka, slutförs den andra fortfarande och har genomförts. Annars får du vänta på ea. fråga för att vara komplett efter den andra.
Om du behöver sekventiella och absolut unika ID-nummer, hämta dem från en annan källa. AutoInc-kolumner garanterar helt enkelt ett unikt värde - inte nödvändigtvis en monosekvens - som är en punkt för serialisering och en flaskhals.
En väg runt detta om annat krävs:
ställ in innodb_autoinc_lock_mode = 0
i din my.cnf/mysql.ini
Beskrivning av automatisk inc-låsning i InnoDB och Options