Получить последний вставленный идентификатор с помощью Mysql
Добрый день,
Я хочу получить значение id только что вставленной строки в Mysql.
Я знаю, что есть функция mysqli_insert_id, но:
- Я не могу указать таблицу
- Возможно, возникнет риск получить неверный идентификатор, если в то же время выполняется запрос.
- Я использую node.js MySQL
Я не хочу рисковать запросить самый высокий идентификатор, так как есть много запросов, это может дать мне неправильный...
(мой столбец id находится на автоматическом приращении)
Ответы
Ответ 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