【发布时间】:2014-10-28 09:59:15
【问题描述】:
我有一个要求,我需要找出所有具有公共列的表。
我的要求与以下示例类似:
学校教师被分配到许多部门的许多任务。每个分区都维护为一个表。所以所有的分区表都应该有一个可以指向Teacher Id的列。但是列的名称可能不同。例如:DivA-TeacherId、DivB-TeacherId ....、DivN-TeacherId
还有一个名为 Teacher 的表,其中包含教师的详细信息。
表 Teacher - 列 TeacherId(主键)
老师搬出学校,一位新老师接替他,承担与老老师相同的角色和职责。 所以这里我们需要用新教师更新所有的依赖表。
我们可能有 100 张桌子。所以很难手动找出所有这些表。
是否有查询,我们可以找到所有依赖于该列的表,以便使用新的 TeacherId 更新这些表。(请注意,该列的命名在所有依赖表中可能不一样.但是所有这些列名可能有一个共同的子字符串“TeacherId”)
请建议是否可以使用任何查询来找出上述问题的解决方案。
【问题讨论】:
-
“依赖”是指所有其他表都具有从它们单独命名的列到主
teacherId列的外键约束? (为什么分区要分成100张表!?) -
为什么不使用参照完整性 s.t.
...on update cascade或 /and...on delete restrict用于主键和外键并让 Oracle 维护数据? -
如果我没记错的话,你提到的出现列(“TeacherId”)在数据库中查找所有表将是你的依赖表。在 Oracle 中使用系统表。
-
@Alex..是的,其他表对 TeacherId 有外键约束。仅举个例子,我将其称为部门..
-
@Dmitry..我同意你的评论..但是表格已经像这样维护了,我们不应该编辑这些..