Bonjour,
Y-a-t'il une solution qu'on peut envisager pour résoudre le problème de sauts de compteurs avec l'utilisation des séquences?
Bonjour,
Y-a-t'il une solution qu'on peut envisager pour résoudre le problème de sauts de compteurs avec l'utilisation des séquences?
Une séquence n'est pas qu'un compteur. Une séquence permet de générer un identifiant unique.
Si deux utilisateurs interrogent simultanément une séquence pour connaître la prochaine valeur, ils ne recevront pas la même valeur.
Qu'il y ait des "trous" dans la suite de valeurs de l'identifiant d'une table associé une séquence n'est pas un problème.
Si vous avez besoin d'un compteur, il faut passer par un autre mécanisme.
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton
et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
Salut,
Non.
Pour une réponse plus précise, il faudra une description plus précise
(SGBD, instructions utilisées, cas d'utilisation, ...)
D'accord, plus précisément, lors de l'alimentation d'une clé primaire, si un
enregistrement a été inséré puis la transaction a été annulée par un « ROLLBACK », alors la séquence ne revient pas en arrière, et lors de l’insertion suivante, une nouvelle valeur est générée ==> on aura donc des trous,
Ya t'il une solution pour ne pas avoir ces trous ?
Non, aucune solution.
Après, il faut savoir pourquoi tu ne veux pas de trou... et à ce moment là on peut éventuellement te générer des compteurs à la volée.
Mais une séquence, ça n'a vraiment que vocation à être un identifiant unique, dont l'allocation est déléguée au système.
Ca ne doit ni te servir comme donnée temporelle, ni te poser de problèmes quand il y a des trous. (et comme dit, c'est inévitable)
Merci.
Partager