網頁

2020/9/14

Oracle 找出限制條件資料表 find ORA-02292 constraint table

在Oracle異動資料表時,若發生
ORA-02292: 違反完整性限制條件 (<constraint_name>) - 發現子項記錄
ORA-02292: integrity constraint (<constraint_name>) violated - child record found
代表刪除的資料被外鍵參考,所以有外鍵的限制條件。應該先把參照的子表資料刪除後才能把主表的資料刪除。

透過<constraint_name>找出參照的資料表的方式如下。

select * from ALL_CONSTRAINTS
where OWNER = <USERNAME>
and CONSTRAINT_NAME = <CONSTRAINT_NAME>

<USERNAME>為資料庫帳號;<CONSTRAINT_NAME>為限制條件名稱。例如

select * from ALL_CONSTRAINTS
where OWNER = 'app_user'
and CONSTRAINT_NAME = 'RELATIONSHIP73';


沒有留言:

張貼留言