苍穹创建子单据,保存报:在字段“fid”中空值违反了非空约束原创
1人赞赏了该文章
378次浏览
编辑于2023年08月15日 18:33:37
复原场景:
1、增加容器控件,增加单据体,建好表名和主键名
2、增加容器控件,增加子单据体,关联父单据体,设置好表名
3、新增数据时,新增“子单据体”数据时,报如下错误:
从报错中也看得出来,insert into tk_levi_purchase_subenti 时,少了fid
首先得知道:基本信息表,单据体表,子单据体表,三个表的fid 在同一笔单据数据中,是相同的
那插入子单据表时候,找不到fid,所以insert into中也不会出现fid,但是fid在表又是not null字段,所以就报了数据库的非空约束错误
造成这个原因也联系了苍穹的开发老师排查才找到原因:
1、每当新建子单据体时候,fid会默认找父单据表的fid做一个外键关联
2、因为本人在创建好父单据表和子单据表后,对父表做了表名修改(修改主表主键fid也会出问题),导致之前的子外键关联不到父外键
3、关联不到父外键,所以insert into 时候 就没有 fid字段,导致报错
总结:
1、按正常操作顺去建立表关系
2、一旦建好表,就不要轻易乱改表名或者主键id
推荐阅读