我正在尝试实现密码重置页面的功能。
用户获取存储在数据库中的令牌
当用户尝试更新密码时,我想执行以下操作
检查令牌是否存在且尚未过期,并获取该令牌的用户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条答案
按热度按时间ebdffaop1#
您可以使用CTE: