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 約束名;