我只想用expressjs更新cassandra中的一条记录
当im使用insert查询进行更新时,它工作正常,但当im使用update进行相同的更新时,它生成错误404。我的代码如下:我只想用expressjs更新cassandra中的一条记录,express,cassandra,Express,Cassandra,当im使用insert查询进行更新时,它工作正常,但当im使用update进行相同的更新时,它生成错误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=?,firstna
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);
}
});
});
更新行时,需要指定主键的所有组件-在您的情况下,这是
id
&email
,但您只指定id
发件人:
WHERE子句指定要更新的行。要指定一行,WHERE子句必须为该行主键的每一列提供一个值。要指定多行,可以使用IN关键字引入可能值的列表。只能对主键的最后一列执行此操作
什么是表模式?错误消息中有什么?id | email | firstname | lastname这是来自HTTP框架的消息,而不是来自Cassandra。只需将错误消息打印到控制台。。。另外,关于模式-显示带有主键的CQL定义,等等。当我使用insert进行更新时,execlty我说的是,它不适用于更新查询。当我对更新记录使用插入查询时,不会发生此错误。我可以这样写:--var query='update stu SET email=?,firstname=?,lastname=?其中id=?&&电子邮件=?'<代码>变量查询='UPDATE stu SET email=?,firstname=?,lastname=?其中id=?电子邮件=?'代码>