Als je erover nadenkt, zou het auto-increment nummer niet moeten transactioneel zijn. Als andere transacties moesten wachten om te zien of het autonummer zou worden gebruikt of "teruggedraaid", zouden ze worden geblokkeerd door de bestaande transactie met het autonummer. Beschouw bijvoorbeeld mijn pseudo-code hieronder met tabel A met een automatisch nummerveld voor de ID-kolom:
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
Als de transactie van gebruiker 2 een milliseconde na die van gebruiker 1 begint, dan zou hun invoeging in tabel A moeten wachten tot de volledige transactie van gebruiker 1 is voltooid, alleen om te zien of de automatische nummering van de eerste invoeging in A is gebruikt.
Dit is een functie, geen bug. Ik zou aanraden om een ander schema te gebruiken om auto-nummers te genereren als je ze strak opeenvolgend wilt hebben.