查看所有对表中某一列具有外键的表吗?

问题描述

| 这可能吗 ?如果是,那么要涉及的表是什么。     

解决方法

        试试这个
select uc.table_name 
from sys.user_cons_columns ucc
join sys.user_constraints uc 
on uc.r_constraint_name = ucc.constraint_name
where constraint_type = \'R\'
and ucc.table_name = :1
and ucc.column_name = :2
哪里
:1 = referenced table
:2 = referenced column
    ,        
select * from user_constraints where r_constraint_name =<PK_NAME>
其中
<PK_NAME>
是列的主键约束的名称     ,        有两个候选查询可能在这里有所帮助: http://www.alberton.info/oracle_meta_info.html
SELECT alc.constraint_name,CASE alc.constraint_type
            WHEN \'P\' THEN \'PRIMARY KEY\'
            WHEN \'R\' THEN \'FOREIGN KEY\'
            WHEN \'U\' THEN \'UNIQUE\'
            WHEN \'C\' THEN \'CHECK\'
          END \"constraint_type\",alc.DELETE_RULE \"on_delete\",CASE alc.deferrable WHEN \'NOT DEFERRABLE\' THEN 0 ELSE 1 END \"deferrable\",CASE alc.deferred WHEN \'IMMEDIATE\' THEN 1 ELSE 0 END \"initially_deferred\",alc.search_condition,alc.table_name,cols.column_name,cols.position,r_alc.table_name \"references_table\",r_cols.column_name \"references_field\",r_cols.position \"references_field_position\"
     FROM all_cons_columns cols
LEFT JOIN all_constraints alc
       ON alc.constraint_name = cols.constraint_name
      AND alc.owner = cols.owner
LEFT JOIN all_constraints r_alc
       ON alc.r_constraint_name = r_alc.constraint_name
      AND alc.r_owner = r_alc.owner
LEFT JOIN all_cons_columns r_cols
       ON r_alc.constraint_name = r_cols.constraint_name
      AND r_alc.owner = r_cols.owner
      AND cols.position = r_cols.position
    WHERE alc.constraint_name = cols.constraint_name
      AND alc.constraint_name = \'TESTCONSTRAINTS_ID_FK\'
      AND alc.table_name = \'TESTCONSTRAINTS2\';
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...