【YashanDB数据库】自关联外键插入数据时报错:YAS-02033 foreign key constraint violated parent key not found

news/2025/3/16 14:56:40/文章来源:https://www.cnblogs.com/YashanDB/p/18343324

问题现象

使用如下的sql语句创建自关联外键表:

drop table self_f_key;
create table self_f_key(t1 number primary key not null, t2 number);
create index i_s_1 on self_f_key(t2);
alter table self_f_key add constraint c_0001 foreign key(t2) references self_f_key(t1);

然后使用如下语句,尝试插入两行数据,这两行数据汇总起来,是符合外键关联关系的:insert into self_f_key select 1,2 from dual union all select 2,1 from dual;

但是yashandb插入失败:

问题的风险及影响

影响正常的业务处理流程,同样的建表语句,同样的insert,可以在oracle中正常执行:

问题影响的版本

所有的yashandb版本

问题发生原因

目前yashandb在处理此种情况下的完整性约束判断时,没有在事务级进行统一判断,而是使用了类似于一行一行的判断逻辑,

所以在事务级看来没有违反完整性约束的数据无法插入

解决方法及规避方式

规避方法:禁用外键约束

问题分析和处理过程

根据现网的问题场景,构造可以同时在yashandb/oracle执行的sql语句,比较并确认双方的表现差异

yashandb对于此种情况下完整性约束的判断核心在idxCheckKeyExist方法中

经验总结

构造可以同时在yashandb/oracle执行的语句,方便分析确认问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778163.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《DNK210使用指南 -CanMV版 V1.0》第十七章 machine.WDT类实验

第十七章 machine.WDT类实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210…

打造高效智能的会员预约系统

打造个性化预约体验:美业、美发、按摩与医美行业的会员预约系统构建在当今这个快节奏的社会中,美容美发、按摩放松及医美整形等服务行业迎来了前所未有的发展机遇。为了提升顾客体验,增强用户粘性,并高效管理门店运营,开发一套集会员管理、预约调度、服务定制化于一体的预…

博卡会员通小程序功能案例分析

博卡会员通小程序作为一款专为消费品行业设计的会员管理工具,其功能设计紧密围绕会员管理、用户体验提升及营销策略优化三大核心目标。以下是对其关键功能的案例分析: 一、会员精细化管理 用户画像构建 功能描述:通过收集会员的基本信息(如姓名、性别、年龄等)、消费记录、…

PYYZ 集训

摸底测试#1 T1-咕咕直接 \(dp\),转移时注意限制即可。点击查看代码 signed main(){n=read(),m=read(),t=read();while(t--){int a=read(),b=read(),c=read(),d=read();bool flag=0;if(a==n&&b==m)continue;if((c==a+1&&d==b)||(d==b+1&&a==c))flag=1;…

【禁止血压飙升】阿里大佬写的 Controller 太优雅了!

作者:小塵 链接:https://juejin.cn/post/7357172505961578511 前言 见过几千行代码的 controller吗?我见过。 见过全是 try catch 的 controller 吗,我见过。 见过全是字段校验的 controller 吗,我见过。 见过全是业务代码的 controller 吗?不好意思,我们公司很多业务写…

delphi 导出到excel的7种方法

delphi 导出到excel的7种方法本文来自 爱好者8888 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/kpc2000/article/details/17066823?utm_source=copy ===================================================================================================第一种方…

codemirror diff-match-match 不同设备、不同设备状态下的对比结果不稳定

今天遇到一个问题,在使用codemirror对两条文本内容进行对比时,有同事反馈在它的电脑上会显示成:前面一半是正常显示差异内容,而后面就变成了全部是新增的。 像这样:预期的对比结果是这样:我们观察用于对比的两个文本,实际上上面的文本都是去掉后面括号中的内容,对比结果…

【YashanDB数据库】ycm托管数据库时报错OM host ip:127.0.0.1 is not support join to YCM

问题现象 托管数据库时检查报错OM的IP是127.0.0.1,不支持托管到YCMOM 问题的风险及影响 导致数据库无法托管监控 问题影响的版本问题发生原因 安装数据库时修改了OM的监听ip为127.0.0.1解决方法及规避方式 后台修改OM的ip为本机的ip或者0.0.0.0 问题分析和处理过程 1、修改env…