我有一个看起来像这样的简单插入查询:
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
}
});
我真正想要的是获取插入的行数据,而不仅仅是如果没有其他选择查询来获取它们。
是否有一种方法可以在一个查询中发生?
如果您正在使用:
// include mysql module var mysql = require('mysql');
mysql
模块不会在插入查询上返回数据。它正在返回:
-
Number of rows affected
,Number of records affected with the warning
,Message
如果您想获取所插入的数据,则应使用查询构建器或orm(例如续集(。续集文档。
您可以使用以下代码获得最后插入的ID:
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
}
});
您可以使用它来检索
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((返回最后一个身份值插入