Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mysql > Question sur auto_increment

Si on attribue des ID manuellement...quelle réaction ?

Sujet résolu
    26 novembre 2005 à 17:53:51

    Salut,
    J'ai une question sur la fonction auto_increment de mysql.
    je voudrais savoir comme celle-ci réagit dans ce cas :

    Je créé une table avec 2 champs : ID et NOM (ID est en auto_increment)
    Grâce à une requête dans un script php, j'ajoute des entrées, disons une centaine, mais en "forcant" une valeur pour le champs ID. La fonction auto_increment n'agit pas. Je voudrais savoir à quelle valeur elle va repartir lorsque j'ajouterai une nouvelle entrée en sans préciser d'ID.
    Est ce que cela peut poser des problèmes ?

    Merci d'avance !

    @ +
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2005 à 19:20:12

      La meilleure manière de savoir, c'est de tester ^^:-°
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2005 à 19:27:00

        Salut,

        En mettant des ID manuellement, ca ralenti l'execution du scripts puisque tu dois faire plus de requete pour connaitre l'ID
        Si il n'est pas renseigné il prendra la valeur par default ( 0 ou null ). Biensur tu ne pouras pas réinséré une autre entrée puisque la valeur est déjà prise si tu as mit en unique sinon tu te retrouveras qu'avec des id 0 ou null


        ID et en INT ?
        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2005 à 20:21:12

          Ceci dit, les requetes imbriquées permettent de faire ça facilement :)

          INSERT INTO ... VALUES(SELECT ... FROM,...)
          • Partager sur Facebook
          • Partager sur Twitter
            26 novembre 2005 à 20:30:06

            bon et bien désolé, mais je n'ai pas trop compris vos réponses :-)

            En fait je vouais juste être sûr que mon auto_increment n'allait pas partir en live après que j'ai ajouté des ID manuellement, et donc sans respecter le cours normal des choses prévues par l'auto_increment.

            Après quelques tests (ce qui est je suis d'accord la meilleurs solution) il semble que l'auto_increment prends le plus grand ID existant et commence à "compter" à partir de celui-ci... donc tout est OK pour moi :-)

            Merci @ tous
            • Partager sur Facebook
            • Partager sur Twitter
              26 novembre 2005 à 20:34:44

              Bah c'est bon alors.

              Juste un exemple de requete pour te simplifier la vie, je pense que ça fonctionne :

              INSERT INTO table(id_inséré_manuellement,champ2) VALUES(SELECT max(id)+1 FROM table,$champ2)

              Si ça peut t'aider :)
              • Partager sur Facebook
              • Partager sur Twitter
                26 novembre 2005 à 20:37:23

                Si c'est auto_incrementé quand tu fais ton inser il faut rien méttre à l'endroit où y'a le champ qui est auto_incrémenté.
                • Partager sur Facebook
                • Partager sur Twitter
                  26 novembre 2005 à 21:16:19

                  Touki > ok merci pour l'astuce, mais apparemment c'est ce qui est fait automatiquement :-)

                  bskand > merci, mais je le sais ! mon problème était que je devais justement mettre des ID bien précis et qu'ensuite ceci devait se faire normalement ;-)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Mysql > Question sur auto_increment

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown