寻求可行性!
举个例子:
表1记录的是某个货物应该的发货数量
表2记录的是某个货物实际的发货数量
我要控制表二不能出现表2的实发数量不能大于表1的应货数量。
实际过程中,计算表1的应发数量逻辑要复杂一些,可能要经过计算才能确定,而且有并发的可能性,即:能过计算得到表1的应发数量后,确定可以将表2的实发数量加1,但有可能在我计算表1的时候有并发的请求也在在计算表1,而取表2的数量符合要求,所以决定将表2数量加1,二者都决定可以将表2的实发数量加1,数据可能发生错误而超过表1的数量。
我考虑两种可能性:
1:使用更新触发器,将计算表2的逻辑写在触发器里。
2:使用锁定表的方式。
问题1:如果使用触发器,触发器是可以并发进行的,还是要顺序进行的?
问题2:如何能过事务锁定表?表1的数量是不会变化的,如何锁定我要更新的表2?是不是先开启务,然后Select得到我要更新的记录,这样就把它锁定了?把其它并发请求排队后才能看到更新后的表2数量?
能不能综合使用触发器和事务,来满足我的业务要求?