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