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

SQL Procédural MySQL Discussion :

L'autoincrement peut-il repartir de zéro ?


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Par défaut L'autoincrement peut-il repartir de zéro ?
    Bonjour,

    Cette question concerne peut-être tous les SGBDD, mais dans le doute, et utilisant MySQL, je préfère poster ici.

    Soit 10 enregistrements dans une table avec une clé primaire de type mediumint, en autoincrement, donc.

    J'obtiens, pour mes 10 premières insertions dans la table, les valeurs de clé suivantes : 1, 2, 3, ..., 10

    J'efface des enregistrements, et procède à une réinsertion. Le numéro affecté à la clé primaire est 11. Autrement dit, MySQL ne réaffecte pas un autre numéro plus petit, auparavant libéré du fait de la suppression.

    Ce comportement me convient, car dans le cadre d'une insertion multiple, j'ai besoin de récupérer les valeurs de clé primaire. Il me suffit donc de récupérer le premier. S'il vaut 15 et que j'insère 10 nouveaux enregistrements, leurs clés sera 15, 16, 17, ..., 25. Donc c'est parfait.

    Ma question, c'est de savoir si c'est fiable. C'est à dire est-ce qu'il y a un risque qu'à un moment donné, MySQL utilise des valeurs inférieures, ou repart-elle toujours de la valeur la plus haute attribuée ?

    J'ai essayé un alter table, et c'est toujours ok.

    Donc je voulais juste m'assurer de ce fonctionnement. Car si MySQL réutilisait des valeurs inférieures, elles pourraient ne pas se suivre (genre 10, 18, 23, 24...) et en cas d'insertions multiples, je ne pourrait plus récupérer les valeurs associées.

    J'espère ne pas avoir été trop flou, si vous ne me comprenez pas, dites-le moi !

    Merci de m'avoir lu en attendant

  2. #2
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    J'utilise aussi mysql et le type auto increment mais par une interface appellée xampp.

    Avec cette intreface je peux visualiser la valeur du prochain auto increment.

    Si tu ne touches pas à cette valeur, t'auras pas de probleme, mysql retournera toujours une bonne valeur

    Par contre je ne sais pas comment se passe le cas ou tu arrives au bout de ton auto_increment.

    c'est à dire si tu as mis ton champ avec une taille 2 et que l'auto increment arrives à 99

  3. #3
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Salut,

    Le seul cas où MySQL réutilise des valeurs de colonnes auto-incrémentées précédentes est avec les tables ISAM et BDB, mais uniquement pour remplacer les valeurs maximum de la colonne.

    Ex : Dans une table ISAM ou BDB, si la colonne auto-incrémentée contient (10, 11, 12) et qu'on supprime la ligne avec la valeur 12, la prochaine ligne insérée réutilisera 12.

    En aucun cas on ne peut boucher les "trous" en réutilisant les valeurs inférieures à la valeur maximum.

    http://mysql.developpez.com/faq/?pag..._reutilisation

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Par défaut
    Oui, ok pour une insert unique, mais je pense surtout aux insertions multiples.

    Je dois être certain que dans un tel cas, les auto-increment se suivent bien.

    Pour l'instant, tous mes essais tendent à le prouver. Mais si quelqu'un pouvait me confirmer...

    A+


    EDITION : marci pour la précédente réponse ! Nos posts se sont croisés.

    C'est parfait alors. Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 32
    Dernier message: 24/12/2011, 10h08
  2. Réponses: 0
    Dernier message: 09/12/2011, 14h09
  3. [ASE]Autoincrement - Repartir à 1.
    Par fadeninev dans le forum Sybase
    Réponses: 2
    Dernier message: 22/06/2006, 16h04
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 10h31

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