ORA-02292: 違反完整約束條件的處理方法


 oracle刪除某一條數據的時候,提示

 使用以下sql查詢外鍵的位置

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
AND A .constraint_name = UPPER (
'FK_TASK_TEMPLATE_INSTRUMENT2'
)

sql查詢出來的內容,表示TB_TASK_TEMPLATE_INSTRUMENT表中有用到外鍵

 

結果一查詢,果然是的。 

處理方法1:刪除TB_TASK_TEMPLATE_INSTRUMENT表中的數據,再刪除要刪除的數據

處理方法2:先讓約束失效,然后再直接刪除數據,然后再讓約束恢復一下(網上找的方法)

select * from user_constraints t where t.table_name = 'TB_TASK_TEMPLATE_INSTRUMENT'

禁用該約束
alter table 表名 disable constraint 約束名;
啟用約束
alter table 表名 enable constraint 約束名;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM