关联数据输出时的疑问

关联数据输出时的疑问

https://img1.sycdn.imooc.com/climg/655608b609d5804212730372.jpg

老师,这里不是很明白,为什么第一次输入pay_money为80的数据,不会触发,而第二次输入就会触发呢?第一次从时间上来说,不是已经满足超时时间的条件了吗?难道是第一次满足条件会被标记?然后第二次再满足超时条件,才会触发吗?(之前我一直理解为只要order表中相同关联条件的数据进来,就会与ExpirationTime进行比较,第一次如果满足条件了就会直接触发)

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

这个现象课程里面有详细解释,主要原因就是超时时间不满足:

https://img1.sycdn.imooc.com/climg/6556d60509580f3914170931.jpg


课程里面也通过debug源码的方式进行了具体分析,可以在本地也调试一下源码,加深理解。

  • 蒋昌魁 提问者 #1

    老师这里是否意味着第一次输入pay_money为80的新数据时,leftTime和leftExpirationTime比较的是之前leftExpirationTime,而第一次输入这个新数据后,使得leftExpirationTime的值变大了,但是此刻并不触发,因为判断条件是上游的代码。然后等到第二条关联字段的数据再来的时候,leftTime比较的是第一次输入新数据改变后的leftExpirationTime,此时条件成立,因此会触发,输出已超时的但从未join过的数据。这样理解的逻辑链条正确吗?

    2023-11-17 12:23:45
  • 徐老师 回复 提问者 蒋昌魁 #2

    是这个意思。可以在本地debug一下源码观察一下里面参数的值的变化会更清楚。

    2023-11-17 14:40:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师