Oracle数据库ORA-02449表中的唯一/主键被外键引用
问题
ORA-02449:表中的唯一/主键被外键引用
原因
oracle给出的描述很清楚,意思是表中的主键,被其他的表当做外键进行了关联,无法删除。
解决办法
为了表达意思事前说明,表1代表主键被外键引用的表,表2代表把表1的主键当做外键的表
1、根据sql查找表1被应用的表。
select A.*
from user_constraints A, user_constraints B
WHERE b.table_name = 'MYTEST'
and a.constraint_type = 'R'
and a.r_constraint_name = b.constraint_name;
MYTEST
改为表1,名称要大写
2、查询结果可以看出表1的主键被引用当做外键的所有表。
找到TABLE_NAME一列就是结果,在这里标识表2
3、删除表2或者将表2有关联的外键约束删除。
-- 方法一:删除表2
drop table mytest; -- 替换mytext
-- 方法二:删除表2外键约束
alter table mytest DROP CONSTRAINT xxx; -- 替换mytest为表2名称,xxx替换为外键名称