Oracle教程:ORA-02292和ORA-02297 |
發(fā)布時間: 2012/8/26 15:28:01 |
刪除某表的數(shù)據(jù),報錯“ORA-02292: 違反完整約束條件 (UNITELE.TA_SUB_REFERENCE3) - 已找到子記錄”。原來該表有主鍵,隨即置主鍵約束無效 ALTER TABLE table_name MODIFY CONSTRAINT PK_SUB_TASK_T DISABLE; 又報錯“ORA-02297: 無法禁用約束條件 (UNITELE.PK_SUB_TASK_T) - 存在相關(guān)性” 說明該表的主鍵被其他表作為了外鍵,置約束無效得加上cascade ALTER TABLE table_name MODIFY CONSTRAINT PK_SUB_TASK_T DISABLE CASCADE; 或 ALTER TABLE table_name DISABLE CONSTRAINT PK_SUB_TASK_T CASCADE; 這樣就可以刪除數(shù)據(jù)了,但是務(wù)必在刪除數(shù)據(jù)后,將主鍵約束置為有效。由于前面使用的是級聯(lián),那么也會影響到其他表將該主鍵作為外鍵的約束,給一并置為了無效,所以都得給置回來。 會影響到其他哪些約束哪些表呢? select CONSTRAINT_NAME,TABLE_NAME from dba_constraints where r_constraint_name ='PK_SUB_TASK_T'; 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |