bug记录@违反完整约束条件 (MALLT_ESHOP1.FK_PARTNER) - 已找到子记录

当尝试删除Oracle数据库中的一条记录时,如果该记录在其他表中作为外键存在,会导致违反完整约束条件的错误。解决方法包括临时关闭外键约束或者先删除关联表中的子记录。通过查询`user_constraints`表可以找出所有关联的表,然后逐个删除子记录以避免错误。
摘要由CSDN通过智能技术生成

问题描述:

在刚刚进行项目的开发时,一个简单的删除sql报错,违反完整约束条件 (MALLT_ESHOP1.FK_PARTNER) - 已找到子记录

问题原因:

在oracle中执行删除sql时,其实会去检查你将要删除的这条记录是否在其他表中被作为外键使用,因为一旦这条记录在其他表中被使用了,在oracle这种关系型数据库中是不能直接删除了,所以就报上面的错误了。

解决方式:

第一种就是手动关闭外键约束。 第二种就是查出与你要删除记录所在表的所有有关联的表。可执行下面的sql查询:
select a.constraint_name, a.table_name, b.constraint_name ,b.table_name from
user_constraints a, user_constraints b where a.constraint_type = ‘R’
and b.constraint_type = ‘P’ and a.r_constraint_name =
b.constraint_name and a.constraint_name = ‘FK_PARTNER’
找到关联表后,在将所有关联表中涉及到的子记录删除,这样再执行删除sql就不会报错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值