Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajouter l'id dans l'insertion d'un champ MySQL

Sujet résolu
    10 mai 2022 à 12:45:38

    Bonjour, je ne connais pas trop mysql mais je voulais savoir il y avait possibilité de faire ceci : 

    Par exemple j'ai une table (exemple) avec les colonnes suivantes : id (en auto increment) et content (varchar).

    Si je fais cette commande :

    INSERT INTO exemple (content) <= ici pas besoin de rajouter id car auto

    VALUES ('ici du texte') <= et après texte, je voudrais rajouter l'id qui va être généré automatiquement.

    Est-ce que c'est possible ?

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      10 mai 2022 à 13:48:09

      Bonjour,

      Voici 3 syntaxes d'insertion valable pour MySQL :

      INSERT INTO matable ( content )
      VALUES ( 'contenu' );
      
      INSERT INTO matable ( id, content )
      VALUES ( NULL, 'contenu' );
      
      INSERT INTO matable ( id, content )
      VALUES ( 1, 'contenu' );

      La première, celle que tu indiques dans ton message, va incrémenter l'id automatiquement et le définir ainsi pour la colonne id sans ton intervention.

      La deuxième fait exactement la même chose, en passant NULL à l'id, MySQL va incrémenter aussi.

      La troisième te permet de spécifier toi-même l'id. Attention cette solution peut aboutir à une erreur si l'id passé existe déjà dans la table.

      Mais au fond, pourquoi te poses-tu cette question ?

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        10 mai 2022 à 14:33:55

        Bonjour et merci pour ta réponse, cependant c'est pas ce que je voulais dire. 

        En fait, par rapport à ton exemple, dans la chaine de caractère "contenu" je veux ajouter la même valeur qui sera attribué à l'id.

        Si l'auto incrémentation de l'id = 10, il faut que dans la chaine de caractère "contenu" il soit rajouté la même valeur que l'id, ce qui donne :

        INSERT INTO matable ( content )
        VALUES ( 'contenu + id' );

        Et dans ma table j'aurais du coup, id = 10 et content = contenu + 10. 

        Est-ce possible en SQL ?

        • Partager sur Facebook
        • Partager sur Twitter
          10 mai 2022 à 16:02:29

          Ce que tu demandes implique une redondance de données ... Tu romps la forme normale et le principe d'atomicité ... C'est inutile de concaténer deux données qui existent séparément dans des colonnes distinctes de ta table ...

          Tu peux obtenir ce que tu souhaites avec un SELECT :

          SELECT CONCAT( content, ' + ', id )
          FROM matable

          -
          Edité par Benzouye 10 mai 2022 à 16:02:42

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            10 mai 2022 à 17:04:19

            Je suis vraiment désolé mais il y a un malentendu, c'est pas grave, je ferais autrement. 

            Merci tout de même d'avoir pris le temps de me renseigner ! 

            • Partager sur Facebook
            • Partager sur Twitter
              10 mai 2022 à 17:52:15

              AndjySmith a écrit:

              il y a un malentendu

              Je pense que 

              AndjySmith a écrit:

              Si l'auto incrémentation de l'id = 10, il faut que dans la chaine de caractère "contenu" il soit rajouté la même valeur que l'id [...] dans ma table j'aurais du coup, id = 10 et content = contenu + 10

              Pour moi c'est très clair, et ma réponse ne change pas ...

              Ne préfères-tu pas clarifier le malentendu plutôt ?

              Donner un exemple concret de ce sur quoi tu travailles par exemple ?

              -
              Edité par Benzouye 10 mai 2022 à 17:52:58

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

              Ajouter l'id dans l'insertion d'un champ MySQL

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown