gpt4 book ai didi

SQL从相关表中删除

转载 作者:行者123 更新时间:2023-12-04 21:39:09 24 4
gpt4 key购买 nike

我正在尝试从问题表和关系表中删除与测验 ID 匹配的所有记录。该查询适用于 select 语句,但不允许删除相同的语句。

@quizId 是我传递到存储过程中的测验 ID 值。有谁知道如何使用一条语句从两个表中删除?是否可以?

DELETE tGeoQuestions as a, tGeoQuizToQuestion as b WHERE b.quizId = @quizId AND a.id = b.questionid

最佳答案

你需要启用级联删除然后它会自动发生,你需要做的就是从具有PK的表中删除,所有fk表将被自动删除

否则就是两步操作

像这样的东西,把它放在一个 tran 中

DELETE a 
FROM tGeoQuestions as a
JOIN tGeoQuizToQuestion as b
ON a.id = b.questionid
AND b.quizId = @quizId


DELETE tGeoQuizToQuestion WHERE quizId = @quizId

你的第三个选项是 PK 表上的触发器,如果​​它在 PK 表中被删除,它会从 FK 表中删除所有内容......我不推荐触发器

关于SQL从相关表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com