项目场景:
webservice一个完工入库接口并自动产生倒扣料
问题描述
webservice一个完工入库接口并自动产生倒扣料,发现完工入库过账成功,倒扣料不成功时,事物未回滚
原因分析:
例如:1:排查所有调用审核、过账函数中,是否提前提交了事物;未发现,2:检查程序过程中是否执行了DDL操作,导致自动提交了事物,最后发现,在事物运行过程中,有删除临时表和创建临时表的动作,这个会导致事物自动提交
解决方案:
将创建临时表、删除临时表的动作迁移到事物外处理,保持实物一致性
DROP TABLE tmp
CREATE TEMP TABLE tmp(
a LIKE type_file.chr20, #FUN-A70138
b LIKE type_file.chr1000,
c LIKE type_file.num15_3);
#删除库存临时表
DROP TABLE img_temp
#把该料号在对应线边仓的库存取出
SELECT img_file.* FROM img_file
WHERE 1=2
INTO TEMP img_temp