Pokud o tom přemýšlíte, číslo automatického zvýšení by nemělo být transakční. Pokud by ostatní transakce musely čekat, až uvidí, zda bude automatické číslo použito nebo „vráceno zpět“, budou zablokovány existující transakcí používající automatické číslo. Zvažte například můj pseudokód níže s tabulkou A pomocí pole automatického číslování pro sloupec ID:
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
Pokud transakce uživatele 2 začíná milisekundu po uživateli 1, pak by jeho vložení do tabulky A muselo čekat na dokončení celé transakce uživatele 1, aby se zjistilo, zda bylo použito automatické číslo z prvního vložení do A.
Toto je funkce, nikoli chyba. Doporučil bych použít jiné schéma pro generování automatických čísel, pokud potřebujete, aby byla těsně po sobě jdoucí.