0
votes

Comment obtenir les données de ligne insérées dans la requête d'insertion nodejs-mysql?

J'ai une simple requête d'insertion qui ressemble à ça:

let sql = "INSERT into users(name, date) VALUES ('"+name+"', '"+date+"')";
  connection.query(sql, (err, result) => {
      if(err) {
          res.status(500);
      } else {
        res.send(result) // we have here an object that has only the inserted id  
      }
  });

ce que je veux vraiment, c'est obtenir les données de ligne insérées, pas seulement l'identifiant sans faire une autre requête de sélection pour les obtenir.

existe-t-il un moyen de faire en sorte que cela se produise en une seule requête?


1 commentaires

mysql renvoie pas de données lors de l'insertion. Vous pouvez utiliser un générateur de requêtes ou un ORM knexjs.org/#Builder-returning


3 Réponses :


1
votes

Si vous utilisez:

// include mysql module var mysql = require('mysql');

Le module mysql ne retournera pas de données sur la requête de l'insert. Il revient:

  • Number of rows affected , Number of records affected with the warning , Message

Si vous souhaitez obtenir les données que vous avez insérées, vous devez utiliser un générateur de requêtes ou un ORM comme Sequelize. entrez la description du lien ici


0 commentaires

0
votes

Vous pouvez l'utiliser pour récupérer le

let sql = "INSERT into users(name, date) VALUES ('"+name+"', '"+date+"') ; SELECT * FROM users WHERE id = SCOPE_IDENTITY()";
  connection.query(sql, (err, result) => {
      if(err) {
          res.status(500);
      } else {
        res.send(result) // we have here an object that has only the inserted id  
      }
  });

SCOPE_IDENTITY () Retourne la dernière valeur d'identité insérée


0 commentaires

0
votes

Vous pouvez obtenir le dernier identifiant inséré en utilisant le code ci-dessous:

SQLconnnection.query(sql, (err, result) => {
      if(err) {
          console.error(err);
      } else {
         console.log(result) ;
         /*Output=>{affectedRows: 1
                    changedRows: 0
                    fieldCount: 0
                    insertId: 1 =>Last inserted ID Here
                    message: ""
                    protocol41: true
                    serverStatus: 2
                    warningCount: 0}*/
       console.log(result.insertId);//=>last inserted id get
      }
  });


0 commentaires