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

Requêtes MySQL Discussion :

l'auto_increment saute des valeurs ?


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 68
    Points : 40
    Points
    40
    Par défaut l'auto_increment saute des valeurs ?
    Bonjour

    Je ne comprend pas trop, j'ai une table avec une colonne id en auto_increment et des paramètres, et la combinaison de ces paramètres est unique (j'ai fait un index unique).

    Quand j'ajoute une ligne avec la requete INSERT, l'id s'incrémente de 1, ça me paraît normal.

    Par contre des fois je lance toute une série de requetes pour mettre à jour les lignes ou alors en créer si elles n'existent pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO maTable (param1, param2) VALUES ("value1", "value2") ON DUPLICATE KEY UPDATE param2 = "value2"
    Et alors là quand il crée des lignes, les id ne se suivent pas du tout, ça peut faire des sauts de 5, 30, 700 !
    Est-ce que c'est la requete que j'ai mis plus haut qui n'est pas bonne ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    un auto_increment ne permet pas d'avoir une série de nombre continue mais bien d'être assuré d'avoir un nombre unique.

    en gros a chaque appel de la fonction qui délivre l'auto_increment celle-ci incrémentera définitivement la séquence sous-jacente de 1.

    Donc, le comportement que vous avez est normal.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Mais du coup j'ai mis un type smallint à ma colonne id en pensant qu'il y aurait un certain nombre de lignes mais si l'id s'incrémente de 1000 au lieu de 1 à chaque fois, ça va dépasser le smallint...
    Est-ce qu'il est possible d'écrire autrement ma requête pour éviter l'incrémentation explosive ?
    (ici je fais "insert sauf si existe alors update", il est peut être possible de faire "update sauf si existe pas alors insert")

Discussions similaires

  1. Tri des valeurs dans un DBGrid
    Par soviet dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/06/2015, 14h18
  2. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01
  3. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  4. [SQL] Ma requête m'oblige à saisir des valeurs manuellement
    Par bossun dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/10/2003, 13h29
  5. Réponses: 6
    Dernier message: 04/04/2003, 15h28

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