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