Oracle怎么查外键建在哪个表上

本文介绍如何通过SQL查询确定导致删除操作失败的外键约束所在的表。提供了具体示例,帮助理解如何定位并解决由外键引起的数据库完整性约束问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

怎样查外键建在哪个表上

有时候删除某张表记录的时候,会报错外键约束不能删除。

如果不了解表之间的关系,可以通过以下语句查询到外键是建在哪张表上的:

select * from dba_constraints where constraint_name='xxx' and constraint_type = 'R';

 

例如:我的程序日志中报如下错误,我要知道外键是在那个表上.

2015-09-08 18:28:18 [ main:261597003 ] - [ ERROR ] java.sql.SQLException: ORA-02291: 违反完整约束条件 (IRP.FK66EC57AF5158B9FB) - 未找到父项关键字
       

select * from dba_constraints where constraint_name='FK66EC57AF5158B9FB' and constraint_type = 'R';


wKiom1XuuRyClJ_RAAEwKuMG-qI752.jpg


例如:

执行delete from tablename时报错:

ORA-02292: integrity constraint (CCSYS.FK_T_BME_TASKRUNRESULT_TASKID) violated - child record found

 可以通过执行

select table_name from dba_constraints where constraint_name='FK_T_BME_TASKRUNRESULT_TASKID' and  constraint_type = 'R';

查询出外键是建在T_BME_TASKRUNRESULT表上的,先把T_BME_TASKRUNRESULT表删除,就可以删除 t_bme_task表记录了。



本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1692857,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值