当我使用插入查询进行更新时,它可以正常工作,但是当我使用更新时,它生成错误404.我的代码如下:
router.post('/updateone', function (req, res, next) {
var id = req.body.id;
var fn = req.body.f;
var ln = req.body.l;
var email = req.body.e;
var query = 'UPDATE stu SET email=?,firstname = ?,lastname=? WHERE id=?';
//var up = 'insert into stu(id,email,firstname,lastname)values(?,?,?,?)';
client.execute(query, [email,fn,ln,id], function (err, result) {
if (err) {
res.status(404).send({msg: err});
} else {
res.send(result);
}
});
});
答案 0 :(得分:1)
更新行时,需要指定主键的所有组件-在您的情况下为id
和email
,但您仅指定了{{1} }。
WHERE子句指定要更新的行。要指定行, WHERE子句必须为该行的主键的每一列提供一个值。要指定多个行,可以使用IN关键字引入可能值的列表。您只能对主键的最后一列执行此操作。