从数据库中删除所有记录,而无需更改或删除一致性约束

时间:2019-06-22 07:35:04

标签: mysql

为考试而学习时,我遇到一个问题,我的作业和实验室工作中从未出现过这样的问题。下面是指向正在使用的表格的图像链接,因为它不允许复制和粘贴,而且我不希望手动键入它们(抱歉)。

enter image description here

该问题希望删除与申请人编号105有关的所有记录,但是有多个要绕开的约束,正如我之前无法删除或修改约束之前所述。如何解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:1)

您按从最喜欢孩子到最喜欢父母的顺序删除它们

这个问题实质上是在要求您阅读所显示的sql,并使用它来确定哪些表是其他表的父表,然后首先从子表中清空所有相关记录。可能存在多个层次结构,因此您需要从没有依赖关系的表开始,然后逐步处理直到根目录

如果仅删除数据的子集,则删除查询必须通过将所有记录重新连接到将找到选择标准的根目录中来挑选相关记录,这确实使事情变得棘手< / p>

如果您要针对特定​​情况进行此操作,请添加评论,然后我将修改答案。现在,我认为这个问题只是在一般情况下询问如何解决

答案 1 :(得分:0)

保持简单,基本上,您需要按顺序删除所有内容(可选地,您可以在事务中添加所有删除内容)。

如我所见,应该是:

1)从拥有者中删除 从可能的地方删除anumber = 105;

2)从应用中删除 从应用程序中删除anumber = 105;

3)从申请人处删除 从申请人那里删除anumber = 105;