ORA-02291: integrity constraint (INFORES_GZ_PJ2.FK_TC_DEV_PROPERTY_GRP_PROID) violated - parent key

数据库操作与分析
一.思路1
1.select * from dba_constraints
where owner='INFORES_GZ_PJ2'
AND CONSTRAINT_NAME='FK_TC_DEV_PROPERTY_GRP_PROID'

2.SELECT * FROM DBA_SEGMENTS
WHERE SEGMENT_NAME='TC_DEV_PROPERTY_GRP'
AND OWNER='INFORES_GZ_PJ2'
3.用PL/SQL DEVELOPER查看表的索引或约束字段
3.1使用包查看set long 10000
select dbms_metadata.get_ddl('TABLE','TABLE_NAME','OWNER') FROM DUAL;
4.查看外键表是否含有相关字段内容;



ORA - 02292错误表明在尝试删除父表中的记录时,存在关联的子表记录违反了完整性约束,像在执行 `DELETE FROM dept WHERE deptno = dept_no;` 时就可能报该错误 [^3]。对于完整性约束 (RHDK_UAT.FK_INVOICE_DETAIL) 被违反,找到子记录的情况,以下是一些解决办法: #### 手动删除子记录 先找出与要删除的父记录关联的子记录,然后将这些子记录删除,最后再删除父记录。例如,若父表是 `INVOICE`,子表是 `INVOICE_DETAIL`,可以用如下 SQL 操作: ```sql -- 删除子记录 DELETE FROM INVOICE_DETAIL WHERE INVOICE_ID = '要删除的发票ID'; -- 删除父记录 DELETE FROM INVOICE WHERE INVOICE_ID = '要删除的发票ID'; ``` #### 级联删除 若数据库表在创建时设置了级联删除,当删除父记录时,关联的子记录会自动被删除。可以通过修改表的约束来添加级联删除选项。例如: ```sql -- 修改外键约束,添加级联删除 ALTER TABLE INVOICE_DETAIL DROP CONSTRAINT RHDK_UAT.FK_INVOICE_DETAIL; ALTER TABLE INVOICE_DETAIL ADD CONSTRAINT RHDK_UAT.FK_INVOICE_DETAIL FOREIGN KEY (INVOICE_ID) REFERENCES INVOICE(INVOICE_ID) ON DELETE CASCADE; ``` 之后删除父记录时,子记录会自动被删除: ```sql DELETE FROM INVOICE WHERE INVOICE_ID = '要删除的发票ID'; ``` #### 禁用约束 在某些情况下,可以临时禁用外键约束,删除父记录后再启用约束。不过这种方法有风险,可能会破坏数据的完整性,要谨慎使用。 ```sql -- 禁用外键约束 ALTER TABLE INVOICE_DETAIL DISABLE CONSTRAINT RHDK_UAT.FK_INVOICE_DETAIL; -- 删除父记录 DELETE FROM INVOICE WHERE INVOICE_ID = '要删除的发票ID'; -- 启用外键约束 ALTER TABLE INVOICE_DETAIL ENABLE CONSTRAINT RHDK_UAT.FK_INVOICE_DETAIL; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值