免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4419 | 回复: 9
打印 上一主题 下一主题

关于ORA-02292错误的更详细信息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-19 15:14 |只看该作者 |倒序浏览
执行下面的SQL,报有子表信息没有清除,
SQL> delete from "ONML"."TRANPK" where "TRANCONNID" = '1083' and ROWID = 'AAACaDAAFAAAASMADg';
delete from "SNML"."TRANPK" where "TRANCONNID" = '1083' and ROWID = 'AAACaDAAFAAAASMADg'
*
ERROR at line 1:
ORA-02292: integrity constraint (ONML.FK_TRAIL_TRAILID) violated - child record found

请问有没有办法从ORACLE的相关日志中找到更详细的报错信息,
如: 是哪个或哪些子表未清除于此记录相关的信息...

急!!! 先谢谢了!

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2011-04-19 15:37 |只看该作者
主外键问题。

论坛徽章:
0
3 [报告]
发表于 2011-04-19 15:41 |只看该作者
主外键问题。
renxiao2003 发表于 2011-04-19 15:37



    是的,有没有指令可以查的到哪些表定义了此字段为外键呢?
或者对于这个报错能否查到更详细的TRACE信息?

论坛徽章:
0
4 [报告]
发表于 2011-04-19 17:07 |只看该作者
本帖最后由 tacsoft 于 2011-04-19 17:08 编辑

删除与父表的关联或者禁用约束。外键就是一种约束。

论坛徽章:
0
5 [报告]
发表于 2011-04-19 21:55 |只看该作者
回复 4# tacsoft

问下:
下面的SQL得出的结果,
    SQL> select TABLE_NAME from user_constraints where CONSTRAINT_NAME in(select R_CONSTRAINT_NAME from user_constraints where TABLE_NAME = 'YYY' AND CONSTRAINT_TYPE = 'R');
TABLE_NAME
------------------------------
XXX

1 rows selected.

问表 XXX和YYY到底谁是爸爸,谁是儿子 ?

论坛徽章:
0
6 [报告]
发表于 2011-04-20 10:06 |只看该作者
本帖最后由 tacsoft 于 2011-04-20 10:08 编辑

你现在删除内容的就是子表,你出的问题是与父表的关联问题。

论坛徽章:
0
7 [报告]
发表于 2011-04-20 14:42 |只看该作者
你现在删除内容的就是子表,你出的问题是与父表的关联问题。
tacsoft 发表于 2011-04-20 10:06



     难道先删除子表的记录有问题吗?

论坛徽章:
0
8 [报告]
发表于 2011-04-20 16:59 |只看该作者
当然,因为是外键关系,这两个表的对应列是关联关系,你没有禁用约束时,这个操作是禁止的。

论坛徽章:
0
9 [报告]
发表于 2011-04-20 17:05 |只看该作者
我们一起读读Oracle是怎么表述你的问题的
原文:
Foreign—Requires that all column values in the child table exist in the parent table. The table that includes the foreign key is called the dependent or child table. The table that is referenced is called the parent table.
译文:
外键—要求子表中列的所有值也存在于父表中。该表包含的外键称为依赖或子表,所引用的表称为父表。

精读文档是很重要的

论坛徽章:
0
10 [报告]
发表于 2011-04-20 21:47 |只看该作者
我们一起读读Oracle是怎么表述你的问题的
原文:
Foreign—Requires that all column values in the chil ...
tacsoft 发表于 2011-04-20 17:05



    可是我是在删除子表啊,老兄
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP