苍穹创建子单据,保存报:在字段“fid”中空值违反了非空约束原创
金蝶云社区-蒋经东
蒋经东
1人赞赏了该文章 378次浏览 未经作者许可,禁止转载编辑于2023年08月15日 18:33:37

复原场景:

1、增加容器控件,增加单据体,建好表名和主键名

2、增加容器控件,增加子单据体,关联父单据体,设置好表名

3、新增数据时,新增“子单据体”数据时,报如下错误:

image.png


从报错中也看得出来,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


赞 1