Oracle檢視主外來鍵

2021-06-02 00:12:24 字數 1988 閱讀 4293

select a.constraint_name, a.table_name, b.constraint_name 

from user_constraints a, user_constraints b

where a.constraint_type = 'r' and b.constraint_type = 'p' and a.r_constraint_name = b.constraint_name

-- p 代表主鍵, r 代表外來鍵

查詢某一張表的約束:

select constraint_name from dba_cons_columns where table_name='表名';

這時可以對某一些約束執行某一些操作,如禁用(disable)、刪除(drop)或啟用(enable)

oracle 檢視乙個表對應的主鍵和外來鍵的約束關係,檢視的語句:

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.constraint_name=a.constraint_name

left join user_cons_columns d

on c.constraint_name=d.constraint_name

and a.constraint_type='p'

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

order by a.table_name

另外一種寫法:

select a.owner 外來鍵擁有者, a.table_name 外來鍵表, substr(c.column_name,1,127) 外來鍵列, b.owner 主鍵擁有者,

b.table_name 主鍵表, substr(d.column_name,1,127) 主鍵列

from user_constraints a, user_constraints b, user_cons_columns c, user_cons_columns d

where a.r_constraint_name=b.constraint_name

and a.constraint_type='r'

and b.constraint_type='p'

and a.r_owner=b.owner

and a.constraint_name=c.constraint_name

and b.constraint_name=d.constraint_name

and a.owner=c.owner

and a.table_name=c.table_name

and b.owner=d.owner

and b.table_name=d.table_name

user_constraints是表約束的檢視,描述的是約束型別(constraint_type)是什麼,屬於哪些表(table_name),如果約束的型別為r(外來鍵)的

話,那麼r_constraint_name欄位存放的就是被引用主表中的主鍵約束名。

檢視表結構: desc user_constraints;

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

兩者可以通過(owner,constraint_name,table_name)關聯

檢視表結構: desc user_cons_columns;

oracle 檢視主外來鍵約束

select a.constraint name,a.table name,b.constraint name from user constraints a,user constraints b where a.constraint type r and b.constraint type p a...

oracle主外來鍵管理

使用主外來鍵約束使得資料具有完整性。1 查詢表上所有的約束 select from user constraints t where t.table name father 2 查詢具有主外來鍵關係的表 select c.owner,c.constraint name,c.constraint ty...

mysql建立主外來鍵關聯 mysql主外來鍵建立心得

mysql主主外來鍵建立 1 確保參照的表和字段是存在的 2 關聯表必須是innodb儲存型別 3 必須設定主關聯表主鍵 4 主鍵與外來鍵資料型別和字元編碼 unsigned 必須一致 5 確保以上宣告的句法是正確的 附 mysql建立表預設型別為 myisam 如果要改變預設表型別可在my.inf...