Om du tänker efter så ska inte numret för automatisk ökning vara transaktionell. Om andra transaktioner var tvungna att vänta för att se om autonumret skulle användas eller "rullas tillbaka", skulle de blockeras av den befintliga transaktionen med autonumret. Tänk till exempel på min psuedo-kod nedan med tabell A med ett autonummerfält för ID-kolumnen:
User 1
------------
begin transaction
insert into A ...
insert into B ...
update C ...
insert into D ...
commit
User 2
-----------
begin transaction
insert into A ...
insert into B ...
commit
Om användare 2:s transaktion börjar en millisekund efter användare 1:s, måste deras infogning i tabell A vänta på att användaren 1:s hela transaktion slutförs bara för att se om autonumret från den första infogningen i A användes.
Detta är en funktion, inte en bugg. Jag skulle rekommendera att du använder ett annat schema för att generera automatiska nummer om du behöver att de ska vara tätt sekventiella.