oracle 檢視主外來鍵約束

2021-05-25 01:32:11 字數 1986 閱讀 2295

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...

SQL主外來鍵約束

主鍵 primary key 唯一標示乙個實體。是保證資料庫的實體完整性,保證資料中資料的正確性和合理性,取值非空 唯一。外來鍵 foreign 是用來使表與表之間聯絡。用來保證資料庫的參照完整性,外來鍵的取值必須來自參照表參照列的 值,可以為空也可不為空。1 外來鍵取值規則 空值或參照的主鍵值。2...

oracle禁用觸發器,主外來鍵約束

alter table 表名 disable all triggers 禁用指定表相關的觸發器 alter table 表名 enable all triggers 啟用指定表相關的觸發器 select t.status,t.from user triggers t where t.table na...