我正在构建一个端点,在这里我可以删除用户及其所有关系。表关系如下所示:
| id | followerId | followedId | createdAt | updatedAt |
+-----+------------+------------+---------------------+---------------------+
| 188 | 10 | 19 | 2021-02-22 00:00:00 | 2021-02-22 00:00:00 |
| 189 | 10 | 22 | 2021-02-22 00:00:00 | 2021-02-22 00:00:00 |
| 190 | 10 | 23 | 2021-02-22 00:00:00 | 2021-02-22 00:00:00 |
| 197 | 10 | 12 | 2021-03-11 00:00:00 | 2021-03-11 00:00:00 |
| 199 | 19 | 10 | 2021-03-11 00:00:00 | 2021-03-11 00:00:00 |
我已经构建了以下端点,它运行良好,直到我出现内部错误,并意识到如果Id不在两列中,我就会出现内部服务器错误(followerId和followedId(:
routes.delete("/profile/:id/edit/delete", (req, res) => {
let { id } = req.params
db(`
DELETE user
, follow
, following
FROM user
JOIN relationships as follow
ON follow.followerId = user.id
JOIN relationships as following
ON following.followedId = user.id
WHERE user.id = ${id}
`)
.then((results) => {
res.send({ message: "user deleted" })
})
.catch(err => res.status(500).send(err))
})
如果id只在一列中,是否可以删除该用户?例如,如果我想删除Id为22的用户
如果您设置了带有外键约束的关系表,并在followerId
上设置了DELETE_CASCADE
,则简单的用户删除查询将删除关系表中所有关联的条目。