Oracle獲取外鍵將會使用到一張系統表:user_constraints。
如獲取全部外鍵:
select CONSTRAINT_NAME 約束名稱,TABLE_NAME 表
from user_constraints t where
1=1
--t.table_name in('TBL_STEP')
and CONSTRAINT_TYPE ='R'
AND CONSTRAINT_NAME='FK_STEP_ID';
所有有時間在Oracle需要手動處理數據,在刪除一張主表時,要先把引用主表記錄的次表記錄刪除;刪除主表記錄時,往往會報FK制約引用的錯誤。
上面會有外鍵名稱。通過下面語句我們就能找到所屬從表了,再做處理。
select CONSTRAINT_NAME 約束名稱,TABLE_NAME 表
from user_constraints t where
1=1
t.table_name in('TBL_STEP')
and CONSTRAINT_TYPE ='R'
AND CONSTRAINT_NAME='FK_STEP_ID';