Oracle 查询表名和列名以及所有外键

来源:互联网 发布:单门网络门禁控制器 编辑:程序博客网 时间:2024/05/16 19:01

1.查询所有表

select table_name,tablespace_name,temporary from user_tables [where table_name=表名]


2.查询所有列名

select column_name,data_type ,data_length,data_precision,data_scale,table_name from user_tab_columns [where table_name=列名];


3.查询所有外键

select * from user_constraints a where a.constraint_type = 'R'   [and a.table_name = 表名 ]


4.根据外键名称获取 约束表 和 约束列

select * from user_cons_columns b where b.constraint_name = {a.constraint_name}

说明:{a.constraint_name} 是从上面3中查询果中获取的外键名称


5.根据外键引用表的键名  获取 参照表 和 参照列

select * from user_cons_columns c where b.constraint_name = {a.r_constraint_name}

说明:{a.r_constraint_name} 是从上面3中查询果中获取的参照key名称


6.整合后查询



select b.constraint_name 外键名称, b.table_name 约束表,  b.column_name 约束列,c.table_name as 参照表,c.column_name 参照列,a.delete_rule 删除级联
from user_constraints a
left  join user_cons_columns b on a.constraint_name = b.constraint_name
left  join user_cons_columns c on a.r_constraint_name = c.constraint_name
where a.constraint_type = 'R' and a.table_name = 'ACT_RU_TASK' 

对应结果:




0 0
原创粉丝点击