Jest to zgodne z projektem i zawsze będzie się działo.
Dlaczego?
Weźmy 2 nakładające się transakcje, które wykonują WSTAWKI
- Transakcja 1 wykonuje INSERT, pobiera wartość (powiedzmy 42), wykonuje więcej pracy
- Transakcja 2 wykonuje INSERT, otrzymuje wartość 43, wykonuje więcej pracy
Następnie
- Transakcja 1 kończy się niepowodzeniem. Cofa się. 42 pozostaje niewykorzystane
- Transakcja 2 kończy się z 43
Gdyby gwarantowane były kolejne wartości, każda transakcja musiałaby następować jedna po drugiej. Niezbyt skalowalne.
Zobacz także Czy wstawiane rekordy zawsze odbierają ciągłą tożsamość Wartości (SQL Server, ale obowiązuje ta sama zasada)