1

我的 rest 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);
    });
}
4

1 回答 1

1

这只是因为在插入查询的帮助下直接插入数据。你应该做的是首先你需要在 userId 的帮助下检查你的数据库中存在什么用户 id 是的然后你需要更新 else 就像你正在做的那样插入

或者

您可以使用此示例作为参考(使用 DUPLICATE KEY UPDATE insted of on conflict update) INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+ 1个;

于 2016-10-22T09:39:01.587 回答