数据关联更新
在一些复杂场景中,需要多张表进行配合,才能满足业务的需求。典型的场景如出入库:出库、入库、库存 分别是3张表单,出入库时会随时影响库存表中的数量。又比如会员充值场景中,充值成功后,要更新会员储值卡的余额;会员消费积分场景中,下单支付成功后积分自动增加。这时就需要用到本节重点讲到的关联更新:当一个表的数据变化时,自动更新另一个表的数据。
关联名称
关联更新设置的名称
更新时点
支持数据新增时、数据更新时、数据删除时和支付完成时(需开通支付)。注意这里的更新时点是针对当前表单(即触发表或数据源表)而言。
被更新表
需要被更新数据的表单,我们用”B”表示,当前表(即触发表或数据源表)用”A“表示。
关联条件
被更新表 B 和触发表 A 数据之间的对应关系,只有满足此对应关系时,B 表数据才会被更新。支持1个或多字字段相等的对应关系。
关联条件字段一般是能唯一确定一条数据的字段,设置错误可能导致数据混乱,切记
比如一般会选择会员编号、学号、手机号等能够唯一标识数据的字段作为关联条件。
更新字段
需要被更新的字段。指被更新表(即 B 表中的字段)
更新字段值
支持固定值、触发表中的字段值(即更新的值来源于触发表中的数据)
,如果是数字类型的字段,还支持简单的加减乘除四则运算。
如果你熟悉SQL,可以用如下MYSQL语句进行类比(仅仅是类比,实际不是执行此语句):

满足特定条件才能触发更新
可以附加一定的固定条件,满足此条件时才会触发关联更新,作为触发的前提条件。同样支持多个条件,用 并且(and)、或者(or)进行连接。
被更新表中没有匹配数据时的处理
如果勾选,在被更新表中没有匹配的数据时,将会自动新增一条数据。
演示:支付成功更新会员积分场景。




关联更新设置因为比较复杂,所以在设置完成后,一定要先进行测试,待没有问题后再正式用于生产环境。否则可能导致无法恢复的数据错乱。
对子表的每一条数据进行编号
使用场景:将子表中的每一条数据更新到一个总表中,且子表的数据修改更新时,总表中对应的数据也需要更新。总表中一个手机号或证件号可能存在多条数据,这样就不能用手机号或证件号作为更新条件,需要运用函数将子表的每一条数据进行编号,用编号作为更新条件。

总结
关联更新将表单的应用场景从简单的单表应用扩展到多表应用,为构建复杂应用系统提供了可能。再结合填写关联、表单间跳转传值、多表交叉查看、子表单、函数和公式、流程,可以构建更多复杂的应用系统。这些高级功能在以后的课程中会逐步讲解。