IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Clé primaire qui s'incrémente étrangement


Sujet :

Modélisation

  1. #1
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 500
    Points : 189
    Points
    189
    Par défaut Clé primaire qui s'incrémente étrangement
    Bonjour ,
    J'ai laclé primaire d'une table qui est bien du type NuméroAuto, elle s'incrémentait bien, de 1 en 1 et j'ai fait un import d'un fichier excel dans ma table, tout s'est bien passé, la dernière clé créée est la 5852.
    Mais quand j’insère un nouvel enregistrement dan ma table, la nouvelle clé saute à 46860930. au lieu de 5883 attendu.
    Any explication ?
    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonsoir,
    en général cette propriété ne change pas toute seule mais vérifie si la propriété "Nouvelles valeurs" du champ est sur Incrément et pas Aléatoire
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 411
    Points : 2 162
    Points
    2 162
    Par défaut
    Bonjour,
    En fait Access raisonne un peut comme toi vu que tu passe de 5852 à 5883!

    En fait si tu importe une valeur numérique dans un auto incrément il peut ce passer des chose bizarre!

    Insert (auto) value(10) ce qui semble logique pour un import mais déstabilise l'auto incrément !

    Mais je suis convaincu que le résultat est plus subtil que ça du genre auto + 10.
    Vérifie mais si on parle bien de ce genre d'import les valeur de l'auto doivent être bizarre également !

    Mais je pensaisqu'Access ne l'autorisait plus???

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 11 988
    Points : 24 541
    Points
    24 541
    Par défaut
    Bonjour,
    Voici le fonctionnement des NumeroAuto avec la base de données de MS ACCESS.

    Dans le cas d'un réglage N° auto standard (incrémental classique)
    La table est vierge, à la première saisie, le NA passe à 1.
    On enregistre en passant à l'enregistrement suivant par exemple.
    Le prochain N° sera 2.
    etc

    Lors de la saisie (le NA affiche 1000) on annule.
    On refait une saisie le NA sera à 1000+1. Le NA garde la trace de l'insertion annulée... à l'infini. Enfin ! jusqu'à qu'il atteigne la limite. On va appelé ce NA fantôme, "NA caché".
    C'est la même chose si tu supprimes de enregistrements.
    Exemple :
    Tu es à 5883, tu insère 100 000 enregistrements que tu supprimes. Tu es passé du 5883 à 105 883.
    Tu supprimes ces 100 000 nouveaux (5884 à 105883) enregistrements. Le NA caché est toujours à 105883 + 1.

    Maintenant le cas d'une insertion.
    1 ) On ne spécifie pas le NA dans la requête d'insertion, dans ce cas pas de problème. Le NA continue à s'incrémenter normalement, mais à partir du NA caché.
    Tu vois 5883, mais tu es à 105884 pour le premier enregistrement ajouté.
    Après quelques tests on peut vite avoir un NA qui prend de l'embonpoint.

    2 ) On spécifie le NA dans l'insertion, une pratique extrêmement rare, qu'il vaut mieux éviter.
    Ton premier id à insérer est à 200 000, dans ta table destination ton NA est toujours à 105883+1, ton NA va passer à 200 000 pour ton premier enregistrement inséré.
    Ton premier id à insérer est inférieur à ton NA de destination 105883+1... j'ai dû faire ça il y a quelques années, il me semble que j'avais eu un message d'erreur. Par contre en Jet (access v2) ça marchait mais la table était en vrac.

    La solution pour garder un NA caché en concordance avec celui affiché est de faire un compactage de la bdd.

    Donc aucun mystère, juste quelques règle à connaitre. A noter qu'il y a une instruction SQL pour connaitre le NA caché. Je dois avoir ça quelque part.

    Cordialement,

    PS : le cas indiqué par Thumb down permet de réaffecter un NA souhaité. Exemple tu es à 1000 et tu veux que le prochain soit à 2000. Mais mieux vaut faire un compactage avant, sinon au prochain insert, il va repartir avec le NA caché.
    Petit conseil, éviter des bricoler les NA, ce sont des id à prendre pour ce qu'ils sont, de la simple plomberie.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 500
    Points : 189
    Points
    189
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,
    en général cette propriété ne change pas toute seule mais vérifie si la propriété "Nouvelles valeurs" du champ est sur Incrément et pas Aléatoire
    Je suis bein sur Incrément !!!!
    Je ne chrche plus à comprendre, les clés semblent bien gérées, c'est juste la valeur qui est bizarre .

  6. #6
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 261
    Points : 6 557
    Points
    6 557
    Par défaut
    Salut
    Cela me fait penser aux bdd répliquées sous Acc2k3 ou version antérieure.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonsoir hyperion13,
    Citation Envoyé par hyperion13 Voir le message
    Salut
    Cela me fait penser aux bdd répliquées sous Acc2k3 ou version antérieure.
    ... qui utilisaient aussi le numéro auto de type incrément aléatoire, il me semble ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Une clé primaire qui doit s'incrémenter automatiquement
    Par Msysteme dans le forum Débuter
    Réponses: 21
    Dernier message: 04/03/2009, 00h56
  2. [MySQL] Identifiant Primaire qui s'auto incrémente
    Par The Molo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/04/2007, 14h58
  3. Réponses: 3
    Dernier message: 15/02/2007, 13h02
  4. Réponses: 7
    Dernier message: 01/07/2006, 17h40
  5. [TRANSACT-SQL] clé primaire qui s'auto-incrémente
    Par DonJR dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/05/2006, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo