使用Sql查看表對應的外鍵關系。


最近公司數據庫里某條數據有問題,想要修改一下,但是總是提示已存在子記錄,搜索后發現是因為有外鍵約束造成的。就想學習一下如何使用sql查看外鍵關系:

網上查到的sql如下。

 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.table_name='xxx' --需要查看主外鍵關系的表  
 order by a.table_name  

 

user_constraints是表約束的視圖,描述的是約束類型(constraint_type)是什么,屬於哪些表(table_name),如果約束的類型為R(外鍵)的話,那么r_constraint_name字段存放的就是被引用主表中的主鍵約束名。   

user_cons_columns是表約束字段的視圖,說明表中的和約束相關的列參與了哪些約束。這些約束有主鍵約束,外鍵約束,索引約束.

以上內容均摘自網絡。

引用地址:http://www.cnblogs.com/jifeng/archive/2011/03/17/1987019.html

     http://www.blogjava.net/sunzhong/articles/289139.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM