您好,
我想要获取在Mysql中刚插入的一行的id值。
我知道有 mysqli_insert_id 函数,但是:
- 我无法指定表格
- 如果同时进行查询,可能会出现获取错误 id 的风险。
- 我正在使用 node.js MySQL。
我不想冒险查询最高的id值,因为有很多查询,这可能会给我带来错误。
(我的id列是自动递增的)
https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row 这个链接很好地描述了解决方案:
connection.query('INSERT INTO posts SET ?', {title: 'test'}, function(err, result, fields) {
if (err) throw err;
console.log(result.insertId);
});
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 查看。
我认为你误解了mysqli_insert_id()
方法的使用。这个方法必须在插入语句立即执行后才能获取最后插入的id。如果你直接在MySQL中执行,就会出现问题。
INSERT INTO(a,b)values(1,'test');
SELECT LAST_INSERT_ID(); -- this will display the last inserted id