You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle插入表数据触发Integrity Constraint violated错误求解

问题原因

  • 你抛出的完整性约束错误是外键校验失败导致的,kontoägare表设置了两个外键规则:
    • pnr字段必须匹配bankkund表中已存在的pnr值
    • knr字段必须匹配konto表中已存在的knr值
  • 除此之外konto表本身也有外键关联kontotyp表的ktnr字段,插入konto记录前也要保证kontotyp中有对应数据
  • 你没有提前在关联的父表中插入对应记录,直接往子表kontoägare插数据就会触发约束报错,Oracle环境下该场景对应的错误码通常为ORA-02291。

解决步骤

  1. 先向kontotyp表插入你后续要用到的账户类型数据,可根据自身业务调整字段值:
INSERT INTO kontotyp(ktnr, 其他业务字段) VALUES(1001, ...);
INSERT INTO kontotyp(ktnr, 其他业务字段) VALUES(1002, ...);
COMMIT;
  1. 向bankkund表插入你要用到的两个客户记录:
INSERT INTO bankkund(PNR, FNAMN, ENAMN, PASSWD) 
VALUES('540126-1111', '张三', 'Test1', 'pwd123456');
INSERT INTO bankkund(PNR, FNAMN, ENAMN, PASSWD) 
VALUES('691124-4478', '李四', 'Test2', 'pwd789012');
COMMIT;
  1. 向konto表插入你要用到的三个账户记录,注意ktnr要和第一步插入kontotyp的ktnr值对应:
INSERT INTO konto(KNR, KTNR, REGDATUM, SALDO)
VALUES(123, 1001, SYSDATE, 1000.00);
INSERT INTO konto(KNR, KTNR, REGDATUM, SALDO)
VALUES(5899, 1001, SYSDATE, 2500.50);
INSERT INTO konto(KNR, KTNR, REGDATUM, SALDO)
VALUES(8896, 1002, SYSDATE, 5000.00);
COMMIT;
  1. 再执行你原本的kontoägare插入语句即可正常运行。

内容的提问来源于stack exchange,提问作者S.J.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:45:01