1. 程式人生 > >ORA-02292違反完整約束和ORA-02297無法禁用約束條件 cascade禁用主鍵

ORA-02292違反完整約束和ORA-02297無法禁用約束條件 cascade禁用主鍵

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-1352988/

ORACLE 中delete時出現ORA-02292:違反完整約束條件 錯誤

該表中存在主鍵或外來鍵,可以先禁用。
於是用: alter table hx_tb.tabs modify constraint FK_fk1 disable;
              alter table hx_ta.tabs modify constraint PK_pk1 disable;

我用的是:

ALTER TABLE ES_SYSTEM.FUNC_DEF DISABLE CONSTRAINT PK_FUNC_DEF CASCADE;

發現禁用主鍵 PK_pk1 時 提示ORA-02297:無法禁用約束條件 -存在相關性
說明該表的主鍵被其他表作為了外來鍵,置約束無效得加上cascade;

cascade:
級聯刪除,比如你刪除某個表的時候後面加這個關鍵字 會在刪除這個表的同時刪除和該表有關係的其他物件

於是可以 alter table hx_ta.tabs modify constraint PK_pk1 disable cascade; 可成功禁用!

執行完delete 操作後,執行:
              alter table hx_tb.tabs modify constraint FK_fk1 enable;
              alter table hx_ta.tabs modify constraint PK_pk1 enable;

我用的是:


ALTER TABLE ES_SYSTEM.FUNC_DEF MODIFY CONSTRAINT PK_FUNC_DEF ENABLE;