go-xorm使用外键报错(Cannot add or update a child row: a foreign key constraint fails)

在使用go-xorm框架进行ORM操作时,遇到外键约束失败的问题,导致'Cannot add or update a child row'错误。问题源于插入的数据中外键ID在原表中不存在。文章通过一个不严谨的业务场景,分析了错误原因,包括更新操作中的误解和内联查询映射错误,并提供了错误原因和解决方案。
摘要由CSDN通过智能技术生成

问题描述

使用mysql会经常遇到要使用外键的场景,go-xorm 作为一个orm的框架,在数据映射上使用非常方便,但在增添数据是经常碰到报错:

Cannot add or update a child row: a foreign key constraint fails

情不知所起

明明直接在数据库中插数据并没有报错,为什么用代码跑就出问题了?

报错原因

以上报错信息,英文的主要意思时外键约束未被满足,无法添加数据

具体原因插入的数据用外键的id在原表中不存在。

瞎编的案例

一个不严谨的业务场景

假设一个楼房有多个邮箱可以接受邮件,匿名邮件只有收件地址没有寄件地址,但每个楼房都有一个固定的邮递小哥负责将本楼房发出的邮件送到目的地,要统计楼房之间的通信情况需要三个表

mysql initail script

create table if no exists `build
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值