我有一个简单的insert查询,如下所示:
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
}
});我真正想要的是获取插入的行数据,而不仅仅是id,而不需要进行另一个select查询来获取它们。
有办法在一个查询中做到这一点吗?
发布于 2019-07-29 07:50:52
如果您正在使用:
// include mysql module var mysql = require('mysql');
mysql模块不会返回insert查询中的数据。它回来了:
Number of rows affected,Number of records affected with the warning,Message如果您想获取插入的数据,则应该使用查询生成器或ORM,比如Sequelize。续写文件。
发布于 2020-11-16 16:39:47
您可以使用下面的代码获得最后插入的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
}
});发布于 2020-06-08 04:16:04
您可以使用这个检索
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()返回插入的最后一个标识值
https://stackoverflow.com/questions/57235009
复制相似问题