【发布时间】:2012-03-01 22:34:38
【问题描述】:
您好,我想加入这两个查询以得到一个包含表名、表中的列数和具有外键的列数的查询。
这个查询产生表名和列数
select t.table_name, count(t.table_name)
from all_constraints t
where owner = 'PARRANDEROS' group by t.table_name;
对方查询外键计数。
select table_name, count(constraint_type)
from all_constraints
where owner = 'PARRANDEROS' and constraint_type ='R'group by table_name;
如何加入这两个查询?我正在使用 Oracle 数据库。
编辑:有人告诉我我没有选择每个表中的列数。那么如何计算数据库中每个表的数量呢?
【问题讨论】:
-
我不确定我是否跟随。这两个查询都不会返回您所说的结果。两个查询都返回表上的约束数。两者都不是特定于外键的,也与表中的列数或具有外键约束的列数无关。您是否假设所有外键约束都在单列上而不是复合键上?
-
对不起,我刚刚更新了第二个查询,现在它选择了所有具有外键约束的列。
-
您的意思是从 all_tab_columns 获取列数吗?
-
@serpiente - 它仍然没有选择具有外键约束的列数。它正在选择表上定义的外键约束的数量。
-
@serpiente - 更新了我的答案以计算表中的列数和外键约束的数量,而不是结合两个查询。