web-dev-qa-db-fra.com

Récupérer le dernier identifiant inséré avec Mysql

Bonne journée,

Je suis disposé à récupérer la valeur id d'une ligne récemment insérée dans Mysql.

Je sais qu'il existe une fonction mysqli_insert_id, mais:

  1. Je ne peux pas spécifier la table
  2. Peut-être y aurait-il un risque de récupérer le mauvais identifiant, si une requête est faite entre-temps.
  3. J'utilise node.js MySQL

Je ne veux pas prendre le risque d'interroger l'id le plus élevé car il y a beaucoup de requêtes, cela pourrait me donner le mauvais ...

(La colonne de mon identifiant est en incrémentation automatique)

49
lopata

https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row décrit parfaitement la solution:

connection.query('INSERT INTO posts SET ?', {title: 'test'}, function(err, result) {
  if (err) throw err;

  console.log(result.insertId);
});

Edit: l'orthographe et le référentiel ont été déplacés dans github, j'ai donc changé pour le lien actuel.

100
luksch
var table_data =  {title: 'test'};

connection_db.query('INSERT INTO tablename SET ?', table_data , function(err, result, fields) {
  if (err) {
      // handle error
    }else{
       // Your row is inserted you can view  
      console.log(result.insertId);
    }
});

Vous pouvez également visualiser en visitant ce lien https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row

5
VIKAS KOHLI