Detta är designat och kommer alltid att hända.
Varför?
Låt oss ta 2 överlappande transaktioner som gör INSERT
- Transaktion 1 gör en INSERT, får värdet (låt oss säga 42), gör mer arbete
- Transaktion 2 gör en INSERT, får värdet 43, gör mer arbete
Sedan
- Transaktion 1 misslyckas. Rullar tillbaka. 42 förblir oanvända
- Transaktion 2 slutförs med 43
Om konsekutiva värden garanterades, skulle varje transaktion behöva ske en efter en. Inte särskilt skalbar.
Se även Ta alltid insatta poster emot kontinuerlig identitet Värden (SQL Server men samma princip gäller)