C'est intentionnel et cela arrivera toujours.
Pourquoi ?
Prenons 2 transactions qui se chevauchent qui font des INSERTs
- La transaction 1 effectue un INSERT, obtient la valeur (disons 42), effectue plus de travail
- La transaction 2 effectue un INSERT, obtient la valeur 43, effectue davantage de travail
Alors
- La transaction 1 échoue. Roule en arrière. 42 séjours inutilisés
- Transaction 2 terminée avec 43
Si des valeurs consécutives étaient garanties, chaque transaction devrait se produire l'une après l'autre. Pas très évolutif.
Voir également Les enregistrements insérés reçoivent-ils toujours une identité contiguë Valeurs (SQL Server mais le même principe s'applique)