我的其他api调用Put函数来在Postgre-sql上创建firebase令牌。
但是,我意识到每当令牌被刷新时,将为同一用户添加一个新行。
如何进行插入(如果存在则执行插入,如果不存在则更新)。
我已经尝试过冲突更新,但它不起作用。
代码在这里:
function createUserToken(req, res, next) {
var userid = req.user.email;
db.none('insert into fcmdb(userid, token)'+
'values($1, $2) on conflict update',
[userid,req.body.token])
.then(function () {
res.status(200)
.json({
status: 'success',
message: 'Inserted token'
});
})
.catch(function (err) {
return next(err);
});
}
答案 0 :(得分:1)
这只是因为在插入查询的帮助下直接插入数据。 您应该做的首先是您需要在userId的帮助下检查您的数据库中存在的用户ID是什么然后您需要更新其他只是插入就像您正在做的那样
或
您的工作方式可以使用此示例作为参考(使用针对冲突更新的重复更新)INSERT INTO表(a,b,c)VALUES(1,2, 3) ON DUPLICATE KEY UPDATE c = c + 1;