Подтвердить что ты не робот

Получить последний вставленный идентификатор с помощью Mysql

Добрый день,

Я хочу получить значение id только что вставленной строки в Mysql.

Я знаю, что есть функция mysqli_insert_id, но:

  • Я не могу указать таблицу
  • Возможно, возникнет риск получить неверный идентификатор, если в то же время выполняется запрос.
  • Я использую node.js MySQL

Я не хочу рисковать запросить самый высокий идентификатор, так как есть много запросов, это может дать мне неправильный...

(мой столбец id находится на автоматическом приращении)

4b9b3361

Ответ 1

https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row прекрасно описывает решение:

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

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

Изменить: орфография и репо перемещены в github, поэтому я перешел на текущую ссылку.

Ответ 2

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);
    }
});

Вы также можете просмотреть, посетив эту ссылку https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row

Ответ 3

Я думаю, вы неправильно поняли использование метода mysqli_insert_id(). Этот метод должен быть выполнен сразу после инструкции insert для получения последнего вставленного идентификатора. если вы делаете это непосредственно с моей MySQL

INSERT INTO(a,b)values(1,'test');
SELECT LAST_INSERT_ID();  -- this will display the last inserted id