【发布时间】:2020-06-26 13:21:21
【问题描述】:
- 我正在尝试实现密码重置页面的功能。
- 用户获取存储在数据库中的令牌
- 当用户尝试更新密码时,我想做以下事情
- 检查令牌是否存在且未过期并获取此类令牌的用户 ID
- 更新此用户 ID 以更改密码
- 如果更新成功,则删除此用户 ID 的令牌
这是我能够提出的 3 个单独的查询
SELECT user_id FROM reset_tokens WHERE token = $1 AND now() < expires
UPDATE users SET password=$1 WHERE user_id=$2 RETURNING user_id
DELETE FROM reset_tokens WHERE user_id=$1
如何将这些组合成 1 个查询?谢谢你的建议
如果没有执行更新,则不会发生删除
【问题讨论】:
标签: sql postgresql sql-update sql-insert sql-delete