当前位置: 代码迷 >> Oracle开发 >> 怎么将Oracle数据库中的表按照依赖关系排序,应该查找哪张表
  详细解决方案

怎么将Oracle数据库中的表按照依赖关系排序,应该查找哪张表

热度:55   发布时间:2016-04-24 07:30:47.0
如何将Oracle数据库中的表按照依赖关系排序,应该查找哪张表?
1.假设数据库中有a,b,c,d四张表,其中b依赖于a,c依赖于a,d依赖于b,我想在数据库中首先或得这些依赖关系
  b->a
  c->a
  d->b
  其中->为依赖的意思
2.通过以上的依赖关系,我想将这些表进行排序即a,b,c,d或者a,c,b,d其中b,c两者的先后顺序可以不管,但是d一定在b,c的后面,a一定在b,c的前面。


请有相关经验的朋友帮忙给个解决的思路。

------解决方案--------------------
SQL code
/********************************查询表之间的主外键关系********************************/Select b.table_name 主键表名,           b.column_name 主键列名,           a.table_name 外键表名,           a.column_name 外键列名From (Select a.constraint_name,                       b.table_name,                       b.column_name,                       a.r_constraint_name          From user_constraints a, user_cons_columns b         Where a.constraint_type = 'R'           And a.constraint_name = b.constraint_name) a,       (Select Distinct a.r_constraint_name, b.table_name, b.column_name          From user_constraints a, user_cons_columns b         Where a.constraint_type = 'R'           And a.r_constraint_name = b.constraint_name) bWhere a.r_constraint_name = b.r_constraint_name
  相关解决方案