Nej, mekanismer för automatisk ökning måste arbeta utanför omfattningen av transaktioner, eftersom en annan användare kan infoga i samma tabell innan du avslutar din transaktion. Den andra användarens transaktion måste kunna allokera nästa värde innan du vet om din transaktion använder det värde du just tilldelade.
Angående din kommentar:Om jag får säga det tydligare, kan alla förändringar i omfattningen av en transaktion rullas tillbaka. Räknaren för automatisk ökning är inte tillbakadragen, så den följer inte atomicitet av transaktioner. Inte heller lyder den isolering eftersom en annan transaktion får nästa värde trots att din transaktion inte har genomförts ännu.
Sättet som automatisk ökning fungerar innebär att ibland, om du infogar några rader och sedan rullar tillbaka din transaktion, går de värden du tilldelade med automatisk inkrement förlorade för alltid!
Men det här är okej. Primära nyckelvärden måste vara unika, men de behöver inte vara konsekutiva. De är med andra ord inte radnummer, och du ska inte använda dem så. Så du ska aldrig behöva minska värden som skapats genom automatisk ökning.