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 :

Reordonner un champ autoincrementé


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ixterm
    Inscrit en
    Mars 2005
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 283
    Par défaut Reordonner un champ autoincrementé
    Bonjour

    j'ai une colonne id d'un tableau mysql qui est une clé primaire et en auto_increment.

    Etant donné que les index sauvegardent toujours la dernière valeur incrementée, comment outrepasser ceci?

    autrement dit, si je supprime la dernière ligne n° 47, et que j'en rajoute une nouvelle, l'id commencera à 47 et non pas à 48

    ou encore si je supprime une ligne au milieu, toute la colonne id est réordonnée

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Je ne pense pas qu'il existe de technique directement en mySQL. POur moi il va falloir que tu programme un trigger after delete sur ta table.
    Le principe de réordonner les champs auto-increment ne me semble pas une bonne idée car tu perdras une fonctionnalité de ces attributs. Pourquoi veux-tu procéder de la sorte ?

  3. #3
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    C'est le rôle de l'auto-incrémente, qui ne sert seulement à s'incrémente, c'est pas auto-identifiant.
    Tu as deux choix, soit replace ton auto-increment pour éviter les trou (ce qui revient a donner l'auto-increment toi), ou alors tu met un trigger a l'insert qui va récupérer une identifiant libre pour éviter les trous.

  4. #4
    Membre éclairé Avatar de ixterm
    Inscrit en
    Mars 2005
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 283
    Par défaut
    dans le cas présent, le decomptage des enregistrements m'est inutile, par contre
    le nombre de lignes est important

    donc quand je supprime une ligne et qu'y a un trou au milieu, le numéro de la dernière ligne ne me donne pas le nombre de lignes du tableau

  5. #5
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Citation Envoyé par ixterm Voir le message
    dans le cas présent, le decomptage des enregistrements m'est inutile, par contre
    le nombre de lignes est important

    donc quand je supprime une ligne et qu'y a un trou au milieu, le numéro de la dernière ligne ne me donne pas le nombre de lignes du tableau

    C'est exact, mais je ne comprend pas le problème du coup oO

  6. #6
    Membre éclairé Avatar de ixterm
    Inscrit en
    Mars 2005
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 283
    Par défaut
    alors supposons que mon tableau fait 10 lignes, correspondant à 10 type de pantalons ( par exemple pour un outil de gestion de stock de pantalons)

    si je supprime la dernière ligne car elle correspond à un type de pantalon qu'on ne vend plus, eh ben la prochaine fois que je vais saisir un nouveau type de pantalon, l'increment va commencer par 11

    Donc le tableau aura l'allure : 1,2,3,4,5,6,7,8,9,11

    le 10 ne revient plus, c'est cela l'embetement

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

Discussions similaires

  1. champ autoincrémenté en java
    Par franfr57 dans le forum JDBC
    Réponses: 3
    Dernier message: 09/12/2006, 21h39
  2. [Mysql] Récupérer la valeur du champ autoincrement
    Par Hell dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/10/2006, 11h33
  3. [SQL] récuperer la derniére valeur d'un champ autoincrément
    Par belakhdarbts dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 26/06/2006, 13h37
  4. champ autoincrement
    Par gaucher dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/05/2006, 23h43
  5. SQL insertion avec champ autoIncrement
    Par sg-40 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 09/11/2005, 11h28

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