2013-10-06 48 views
1

我的要求是从基于搜索条件动态选择的几个表中删除数据。根据父子层次结构选择模式中的所有表格

因此,我的光标应该在父子层次结构中获取表,以便在删除记录时不会发出异常'CHILD RECORD FOUND'。

让我们exable

表A是B表

表B的孩子是表C的孩子

表d是表的子摹

所以应该在这个删除序列。

A然后
B或d然后
d或G

+1

哪些DBMS您使用的? Postgres的?甲骨文? –

+0

您是否正在使用您知道的依赖关系的特定表组,或者您是否正在尝试编写可处理任何表的更一般的实用程序? –

+0

它是通用脚本,应该处理架构中的所有表格 – Anand

回答

0

如果使用级联外键,您不必担心表顺序。只需从层次结构的顶部删除(在您的示例中的表G),然后后代表中的所有相关行将自动删除。

查看更多about Cascading Referential Integrity Constraints


回复您的评论:

而且它应该是通用的,足以应付删除,即使删除级联是不存在的,我们没有依赖的知识。

看到这些问题的提示在甲骨文发现限制:

+0

标记'sql'只引用*查询语言*,它不引用DBMS产品“SQL Server”。为此,标签'sql-server'是预期的。 –

+0

@a_horse_with_no_name,据我所知,但许多Microsoft SQL Server用户都习惯用'sql'来标记自己的问题,因为他们认为这是他们使用的产品的名称。他们也认为“词”是指他们的文本编辑器。 –

+0

对于DBMS的混淆,我感到很抱歉。它是oracle DBMS。即使删除级联不存在,我们也不知道依赖关系,它应该足够通用来处理删除。 – Anand

相关问题