我是处于工作中没用过oracle的状态,这不,记录下这个小小的问题。哈哈。

表是公司的平台组定义的。前几天为了测试程序,想删掉一些记录,然后使用delete语句,出现这个东东:oracle ORA-02292: 违反完整约束条件 (TEST.FK_H3K23R74VBBA62WXJB512P0PB) - 已找到子记录出现原因是这个表的某个column被当成了别的表的外键,真的是尴尬,说实话,工作以来,没遇到有公司用外键来维护表关系的。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

先使用sql语句查出到底是哪一个表“约束”了"FK_H3K23R74VBBA62WXJB512P0PB",它其实就是另一张表依赖这张表的外键名

SELECT
    A .constraint_name,
    A .table_name,
    b.constraint_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 = UPPER (
    'FK_H3K23R74VBBA62WXJB512P0PB'
)

执行结果

oracle ORA-02292: 违反完整约束条件 随笔 第1张

然后去找表NOTESERIALNUMBER,果然,用了外键,汗

oracle ORA-02292: 违反完整约束条件 随笔 第2张

oracle ORA-02292: 违反完整约束条件 随笔 第3张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄