问题描述
使用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