Oracle数据库ORA-02449表中的唯一/主键被外键引用

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:11   1410   0

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的主键被引用当做外键的所有表。

image-20200923005013823

找到TABLE_NAME一列就是结果,在这里标识表2

3、删除表2或者将表2有关联的外键约束删除。

-- 方法一:删除表2
drop table mytest; -- 替换mytext
-- 方法二:删除表2外键约束
alter table mytest DROP CONSTRAINT xxx; -- 替换mytest为表2名称,xxx替换为外键名称
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP