抱歉,标题含糊,我不太确定如何定义自己要执行的操作。
我有3个表:类别-具有唯一的ID(cat_id)问题-具有唯一的ID和类别外键(ques_category_fk)答案-具有唯一的ID和问题外键(ans_question_fk)
我想做的是删除一个类别下的所有问题和答案。删除问题没有问题。但是,我不确定如何使用相同的SQL语句删除答案。
我想加载所有问题,遍历所有问题或在答案中添加类别外键。两者似乎都是低效的。
这是我当前的删除语句:
DELETE FROM questions WHERE ques_category_fk = @fk
编写和维护解决方案要容易得多,它们将在一个事务中分别运行这些查询,删除答案和问题,然后再提交。这样,您可以确保将它们全部删除(如果查询失败则不删除),也不必求助于冗长而令人困惑的查询。
举个模拟的例子,假设您要删除一个问题以及后续的答案,其ID为6(在我的示例中,idquestion在表问题中是pkey,在表答案中是f_key的名称):
start transaction;
delete from answers where idquestions = 6;
delete from questions where idquestions = 6;
commit;
然后,如果要删除许多问题,请首先运行查询以选择要删除的所有问题ID并对其进行遍历-对每个ID运行上述查询集。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句