sql 查詢 主外來鍵的 一點心得

wengtf發表於2011-04-08

long long ago建了2個表有主外來鍵,只記得在users表空間叫啥,表名估計只記得個大概,我現在要truncate 其中一張,肯定不行吧,但又不知道哪2張表有主外來鍵。咋整,help~~~~~!!!~~~~~

別把dba_tables 這個檢視給忘了hoho~!~!

select owner,table_name,tablespace_name from dba_tables where tablespace_name='USERS';

所有表的主外來鍵關係查詢:

select a.table_name         主表,
       b.table_name         子表,
       column_name          鍵,
       substr(position,1,1) P
from
      user_constraints a, user_constraints b, user_cons_columns c
where
      a.constraint_name = b.r_constraint_name
and   a.constraint_name = c.constraint_name
order by 1, 2, 4;

查詢單個表的所有主外來鍵關係

 

select a.owner 主鍵擁有者

         ,a.table_name 主鍵表

        ,b.column_name 主鍵列

        ,C.OWNER 外來鍵擁有者

        ,c.table_name 外來鍵表

       ,d.column_name 外來鍵列
from user_constraints  a
left join user_cons_columns b

            on  a.constraint_name=b.constraint_name
left join user_constraints C

            ON C.R_CONSTRAINT_NAME=a.constraint_name
left join user_cons_columns d

            on c.constraint_name=d.constraint_name
where  a.constraint_type='P'

    and  a.table_name='XXX' --需要檢視主外來鍵關係的表
order by a.table_name

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22907091/viewspace-691961/,如需轉載,請註明出處,否則將追究法律責任。

相關文章