yashandb:自关联外键插入数据时报错

自关联外键插入数据时报错:YAS-02033 foreign key constraint violated parent key not found问题现象使用如下的 sql 语句创建自关联外键表:然后使用如下语句,尝试插入两行数据,这两

yashandb:自关联外键插入数据时报错

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

问题现象

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

然后使用如下语句,尝试插入两行数据,这两行数据汇总起来,是符合外键关联关系的: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 执行的语句,方便分析确认问题

发布者:admin,转转请注明出处:http://www.yc00.com/web/1747698519a4682670.html

相关推荐

  • yashandb:自关联外键插入数据时报错

    自关联外键插入数据时报错:YAS-02033 foreign key constraint violated parent key not found问题现象使用如下的 sql 语句创建自关联外键表:然后使用如下语句,尝试插入两行数据,这两

    11小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信