Mysql Sequelize:如何在Sequelize更新查询之后检索更新的记录,而不使用其他查询
这是sequelize更新查询,其中用户是模型(通过电子邮件更新用户角色)。它的工作很好,但我希望使用更新查询,我会得到用户的数据以及。不使用另一个查询就可以获得它吗?不,不使用另一个查询就不可能。这不是Sequelize的限制,而是SQL的限制。在引擎盖下,sequelize需要执行以下操作:Mysql Sequelize:如何在Sequelize更新查询之后检索更新的记录,而不使用其他查询,mysql,sequelize.js,Mysql,Sequelize.js,这是sequelize更新查询,其中用户是模型(通过电子邮件更新用户角色)。它的工作很好,但我希望使用更新查询,我会得到用户的数据以及。不使用另一个查询就可以获得它吗?不,不使用另一个查询就不可能。这不是Sequelize的限制,而是SQL的限制。在引擎盖下,sequelize需要执行以下操作: ` User.update({ role: 'user' }, { where: { email: email } }).then(function(result) { /
` User.update({
role: 'user'
}, {
where: {
email: email
}
}).then(function(result) {
//Returned value: either [0] or [1] i.e. record is updated or not
});
`
它只会更新行,但不会检索任何行。然后,它需要做第二步:
update users set role = 'user' where email = 'test@example.com'
以实际获取(现在更新的)行。如果您使用的是postgresql,则可以在where子句之后设置returning true
select * from users where email = 'test@example.com'
如果你像我的例子一样使用其他数据库,比如mysql,那么你不能一次访问它,你必须使用另一个查询,如下所示
where: { socketID: socket.id },
returning: true,
仅postgresql支持获取更新的行
async function PersonalDetail(req, res) {
var Email = req.body.email;
const user = await User.findOne({ where: { EmailAddress: Email, IsActive: true } });
if (user != null) {
user.UpdateDate = new Date();
user.EmplomentID = req.body.EmplomentID;
user.LivingID = req.body.LivingID;
user.LocationID = req.body.LocationID;
await user.save();
res.json({
IsSuccess: true,
message: 'User updated',
User: user
});
}
else {
res.json({
IsSuccess: true,
message: 'User Not updated',
User: ""
});
}
}